evol_game_simu 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 03c47726493c14799f0496b0ab9f134ef1860d63c0d03d1fb443bd5da2d54e5e
4
- data.tar.gz: 9f02d4c6bd3290f60323f586f53973741cc86d445522cee8a813b24a9b992bcc
3
+ metadata.gz: c99b088e921d37b9da95f50635ebd06c3ecc3a52f6111364e6743ab93758a44e
4
+ data.tar.gz: d67408a7b8bb2a99d21f245df1aba527ccdab758983e9f2da5b4fd9bc8e01401
5
5
  SHA512:
6
- metadata.gz: 2d0430da58d375e8827f643075d1513e0bef90e1f7bcf119c492f4068fc1cc959416e149a756d99b9a80500372ccd9a6c5dfd7e411c750a5b88138e2cc86e634
7
- data.tar.gz: 2e19d179aeeaea1174cfe1a2ec54619fb900722a2a9e4c4bff9c3cf388d7107873e480e4883b78a9416a93b15b4302a1f290575d57677c686576f30cbcc4ec92
6
+ metadata.gz: 04b26c23e8ac39e246a19b4a8ca18393a309c724d4ed566ca0ebc654dffc2e2bce1e73b46528b290268ea096bdb5d6e11255b023aee1ccb0f7d034255dde2f07
7
+ data.tar.gz: 208aa8678cfe885e7371cbad37542755fb9c2f41373bd9b9659605cbf6ddfb0acb68e3b1d871cd3283e8e4fbd2e012fb44260bd51e89ba328fa386e1d26251a1
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- evol_game_simu (0.2.1)
4
+ evol_game_simu (0.2.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -246,38 +246,41 @@ def throws(arr,s)
246
246
  res
247
247
  end
248
248
 
249
- def regenerate!(p,arr)
249
+ def regenerate(p,n,arr)
250
250
  subs = arr.map{|e| p[e]}
251
- for i in 0..subs.length-1 do
252
- p[i] = subs[i]
253
- end
251
+ l = subs.length
252
+ part2 = p[l..n-1]
253
+ newp = subs + part2
254
+ newp.freeze
254
255
  end
255
256
 
256
- def mutate!(p,n)
257
- for i in 0..n-1 do
258
- p[i] = mutate_machine(p[i])
257
+ def mutate(p,n,m)
258
+ muts = []
259
+ for i in 0..m-1 do
260
+ muts << mutate_machine(p[i])
259
261
  end
262
+ part2 = p[m..n-1]
263
+ newp = muts + part2
264
+ newp.freeze
260
265
  end
261
266
 
262
267
  $N = 100
263
268
  $P = generate_population $N
264
- def evolve(p,n,cycles,speed,mutation,rounds,deltas)
269
+ def evolve(n,cycles,speed,mutation,rounds,deltas)
265
270
  avg = []
266
-
267
- for i in 1..cycles do
268
-
271
+ popu = generate_population $N
272
+ for i in 1..cycles
269
273
  puts "before match"
270
- res = match_population p,n,rounds,deltas
271
-
274
+ res = match_population popu,n,rounds,deltas
272
275
  avg << sum(res)/n
273
276
 
274
277
  a = accumulate(res)
275
278
  t = throws(a, speed)
276
279
 
277
- regenerate!(p,t)
278
- p.shuffle!
279
- mutate!(p,mutation)
280
-
280
+ p2 = regenerate(popu,n,t)
281
+ p3 = p2.shuffle
282
+ p4 = mutate(p3,n,mutation)
283
+ popu = p4
281
284
  end
282
285
  avg
283
286
  end
@@ -1,3 +1,3 @@
1
1
  module EvolGameSimu
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evol_game_simu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - chi