/
Main.py
86 lines (76 loc) · 2.98 KB
/
Main.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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import Flowshop
import FlowshopCertificat
import VoisinageSimple as simple
import VoisinageGauche as gauche
import matplotlib.pyplot as plt
# n = 5
# m = 4
# matrix = [[5,4,4,3],
# [5,4,4,6],
# [3,2,3,3],
# [6,4,4,2],
# [3,4,1,5]]
# d = [25,20,10,30,30] # a faire a la main
# fl = Flowshop.Flowshop(n,m,matrix,d)
# certificat = FlowshopCertificat.FlowshopCertificat([0,1,2,3,4])
def testDomine() :
green = (1,1)
center = (2,2)
red = (3,1)
blue = (3,3)
jaune = (1,3)
print("center domine blue : " , fl.domine(center,blue))
print("green domine center : ", fl.domine(green,center))
print("greed domine red : " , fl.domine(green,red))
print("green domine jaune : ", fl.domine(green,jaune))
print("green est domine par jaune", fl.domine(jaune,green))
print("green est domine par red", fl.domine(red,green))
def testOptimisationDirecteSimple(trace = False):
#on choisit des certificats au hasard
voisinageSimple = []
for i in range(10) :
voisinageSimple.append(simple.VoisinageSimple(fl.certificatAlea()))
fl.PLS(voisinageSimple, trace)
for voisin in voisinageSimple :
print(voisin.certificat.permutation)
def testOptimisationDirecteGauche(trace = False) :
voisinageGauche = []
for i in range(10) :
voisinageGauche.append(gauche.VoisinageGauche(fl.certificatAlea()))
fl.PLS(voisinageGauche, trace)
for voisin in voisinageGauche :
print(voisin.certificat.permutation)
def testLecture() :
fl = Flowshop.lecture("data/data/bass/bass_5_9_1.dat")
print(fl)
def testSimpleData(pathname) :
fl = Flowshop.lecture(pathname)
voisinageSimple = []
for i in range(10) :
voisinageSimple.append(simple.VoisinageSimple(fl.certificatAlea()))
fl.PLS(voisinageSimple, True)
for voisin in voisinageSimple :
print(voisin.certificat.permutation)
def testSimpleDataBest(pathname) :
fl = Flowshop.lecture(pathname)
voisinageSimple = []
for i in range(10) :
voisinageSimple.append(simple.VoisinageSimple(fl.certificatAlea()))
fl.PLS(voisinageSimple, trace=True,first=False)
for voisin in voisinageSimple :
print(voisin.certificat.permutation)
def tesGenereFileName(fl) :
for i in range(10) :
print(fl.genereFileName(i,True,True,True,True,True,'shift'))
print(fl.genereFileName(i,False,False,True,True,True,'shift'))
print(fl.genereFileName(i,False,False,False,False,True,'shift'))
fl = Flowshop.lecture("data/data/bass/bass_10_10_5.dat")
certif = FlowshopCertificat.FlowshopCertificat([7, 8, 1, 5, 3, 4, 2, 0, 9, 6])
voisin = simple.VoisinageSimple(certif)
print(fl.PLS([voisin],archive=False,first=True,best=False,trace=True,cmax=True,tsum=True,tmax=False,usum=False))
# testSimpleDataBest("data/data/bass/bass_10_10_1.dat")
# testSimpleData("data/data/bass/bass_10_10_1.dat")
# testLecture()
# testOptimisationDirecteSimple(trace = True)
# testOptimisationDirecteGauche(trace = True)
# testDomine()