module Talgene::Fittable

Overview

The Talgene::Fittable module allows genetic model instances to be compared by their fitness. Equally good solutions are related by the same fitness value.

require "talgene"

class Model
  include Talgene::Fittable

  getter fitness : Float64 do
    rand(10).to_f
  end
end

models = Array.new 5 { Model.new }.sort
values = models.map &.fitness
values # => [1.0, 3.0, 5.0, 5.0, 9.0]

Including types must provide a #fitness method which returns the solution domain.

Included Modules

Direct including types

Defined in:

modules/fittable.cr

Instance Method Summary

Instance Method Detail

def <=>(other : Fittable) #
Description copied from module Comparable(Talgene::Fittable)

The comparison operator. Returns 0 if the two objects are equal, a negative number if this object is considered less than other, a positive number if this object is considered greater than other, or nil if the two objects are not comparable.

Subclasses define this method to provide class-specific ordering.

The comparison operator is usually used to sort values:

# Sort in a descending way:
[3, 1, 2].sort { |x, y| y <=> x } # => [3, 2, 1]

# Sort in an ascending way:
[3, 1, 2].sort { |x, y| x <=> y } # => [1, 2, 3]

[View source]
abstract def fitness : Float64 #

Returns the solution domain.


[View source]