Class: Biopsy::ArchiveGeneration
- Inherits:
-
Object
- Object
- Biopsy::ArchiveGeneration
- Defined in:
- lib/biopsy/optimisers/spea2.rb
Overview
FitnessAssignment
Instance Method Summary collapse
- #archive_truncation(archive) ⇒ Object
- #fill_archive(generation) ⇒ Object
- #further_archive_selection(archive, archive_size) ⇒ Object
- #run(generation, archive_size) ⇒ Object
Instance Method Details
#archive_truncation(archive) ⇒ Object
212 213 214 |
# File 'lib/biopsy/optimisers/spea2.rb', line 212 def archive_truncation archive return archive end |
#fill_archive(generation) ⇒ Object
202 203 204 205 206 207 208 209 210 211 |
# File 'lib/biopsy/optimisers/spea2.rb', line 202 def fill_archive generation archive = [] @generation.clone.each do |individual| if individual.fitness < 1 archive << individual @generation.delete(individual) end end return archive end |
#further_archive_selection(archive, archive_size) ⇒ Object
215 216 217 218 219 220 221 222 223 224 225 226 |
# File 'lib/biopsy/optimisers/spea2.rb', line 215 def further_archive_selection archive, archive_size @generation.sort!{|a, b| a.fitness <=> b.fitness} @generation.clone.each do |individual| if archive.length < archive_size archive << individual @generation.delete(individual) else break end end return archive end |
#run(generation, archive_size) ⇒ Object
191 192 193 194 195 196 197 198 199 200 201 |
# File 'lib/biopsy/optimisers/spea2.rb', line 191 def run(generation, archive_size) @generation = generation archive = fill_archive(@generation) if archive.length < archive_size archive = self.further_archive_selection(archive, archive_size) elsif archive.length > archive_size archive = self.archive_truncation(archive) end return archive end |