Class: Biopsy::ArchiveGeneration

Inherits:
Object
  • Object
show all
Defined in:
lib/biopsy/optimisers/spea2.rb

Overview

FitnessAssignment

Instance Method Summary collapse

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