lib/picky/internals/query/weights.rb in picky-2.0.0 vs lib/picky/internals/query/weights.rb in picky-2.1.0

- old
+ new

@@ -1,23 +1,23 @@ module Query # Calculates weights for certain combinations. # class Weights # :nodoc:all - + # # def initialize weights = {} @weights = weights end - + # Get the weight of an allocation. # def weight_for clustered @weights[clustered] || 0 end - + # Returns an energy term E for allocation. this turns into a probability # by P(allocation) = 1/Z * exp (-1/T * E(allocation)), # where Z is the normalizing partition function # sum_allocations exp(-1/T *E(allocation)), and T is a temperature constant. # If T is high the distribution will be close to equally distributed. @@ -29,26 +29,28 @@ # Just kidding. It's far more complicated than that. Ha ha ha ha ;) # # Note: Cache this if more complicated weighings become necessary. # def score combinations - # TODO Or hide: combinations#to_weights_key + # TODO Or hide: combinations#to_weights_key (but it's an array, so…) # # TODO combinations could cluster uniq as combinations are added (since combinations don't change). # + # TODO Or it could use actual combinations? Could it? Or make combinations comparable to Symbols. + # weight_for combinations.map(&:category_name).clustered_uniq_fast end - + # Are there any weights defined? # def empty? @weights.empty? end - + # Prints out a nice representation of the configured weights. # def to_s @weights.to_s end - + end end \ No newline at end of file