-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHRH_AG_RS.py
35 lines (27 loc) · 1.41 KB
/
HRH_AG_RS.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from genetic_algorithm import GeneticAlgorithm
from SimulatedAnnealing import SA
class HRH_RS:
def __init__(self , capacity, items,POPULATION_SIZE = 64,MAX_GENERATIONS = 64,MAX_NO_CHANGE = 40 ,TOURNAMENT_SIZE = 31 ,MUTATION_RATE = 0.86 ,CROSSOVER_RATE = 0.47, alpha = 0.5,t_init = 500 ,t_target = 5,iter_nb = 10):
"""
Creates an instance that can run the tabu search algorithm .
:param capacity: The capacity of a bin.
:param items: The items that have to be packed in bins.
"""
self.POPULATION_SIZE = POPULATION_SIZE
self.MAX_GENERATIONS = MAX_GENERATIONS
self.MAX_NO_CHANGE = MAX_NO_CHANGE
self.TOURNAMENT_SIZE = TOURNAMENT_SIZE
self.MUTATION_RATE = MUTATION_RATE
self.CROSSOVER_RATE = CROSSOVER_RATE
self.alpha = alpha
self.t_init = t_init
self.t_target = t_target
self.iter_nb = iter_nb
self.bin_capacity = capacity
self.items = items
def run(self):
result1 = GeneticAlgorithm(self.bin_capacity, self.items, self.POPULATION_SIZE,self.MAX_GENERATIONS,self.MAX_NO_CHANGE,self.TOURNAMENT_SIZE,self.MUTATION_RATE,self.CROSSOVER_RATE)
total_iterationsAG, stagnationAG = result1.run()
sa = SA(self.alpha,self.bin_capacity, self.items,self.t_init, self.t_target, self.iter_nb)
sa.run_for_hrh(result1.best_solution.generate_solution(self.items))
return sa