Define a job to generate table simulations
This commit is contained in:
parent
8d83c63fa6
commit
1f919644a3
20
app/jobs/table_simulator_job.rb
Normal file
20
app/jobs/table_simulator_job.rb
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
class TableSimulatorJob < ApplicationJob
|
||||||
|
queue_as :default
|
||||||
|
|
||||||
|
def perform(*_args)
|
||||||
|
engine = VNS::Engine.new
|
||||||
|
|
||||||
|
engine.add_perturbation(Tables::Swap)
|
||||||
|
|
||||||
|
initial_solution = Tables::Distribution.new(min_per_table: 8, max_per_table: 10)
|
||||||
|
initial_solution.random_distribution(Guest.all.shuffle)
|
||||||
|
|
||||||
|
engine.initial_solution = initial_solution
|
||||||
|
|
||||||
|
engine.target_function(&:discomfort)
|
||||||
|
|
||||||
|
best_solution = engine.run
|
||||||
|
|
||||||
|
best_solution.save!
|
||||||
|
end
|
||||||
|
end
|
@ -1,18 +1,5 @@
|
|||||||
namespace :vns do
|
namespace :vns do
|
||||||
task distribute_tables: :environment do
|
task distribute_tables: :environment do
|
||||||
engine = VNS::Engine.new
|
|
||||||
|
|
||||||
engine.add_perturbation(Tables::Swap)
|
|
||||||
|
|
||||||
initial_solution = Tables::Distribution.new(min_per_table: 8, max_per_table: 10)
|
|
||||||
initial_solution.random_distribution(Guest.all.shuffle)
|
|
||||||
|
|
||||||
engine.initial_solution = initial_solution
|
|
||||||
|
|
||||||
engine.target_function(&:discomfort)
|
|
||||||
|
|
||||||
best_solution = engine.run
|
|
||||||
|
|
||||||
best_solution.save!
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user