-
Notifications
You must be signed in to change notification settings - Fork 0
/
VoisinageSimple.py
33 lines (26 loc) · 922 Bytes
/
VoisinageSimple.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
import FlowshopCertificat as cert
class VoisinageSimple(object):
"""docstring for VoisinageSimple"""
def __init__(self, flCertif):
super(VoisinageSimple, self).__init__()
self.iterator = 0
self.certificat = flCertif
def __eq__(self,other):
return self.certificat == other.certificat
def __str__(self) :
return str(self.certificat)
def hasNext(self) :
return self.iterator+1 <= self.certificat.taille
def next(self) :
'''
version voisinsSimple avec iterator
'''
permut = self.certificat.permutation[:]
if self.iterator == len(permut)-1 :
cert.echange(permut,self.iterator,0)
else :
cert.echange(permut,self.iterator,self.iterator+1)
self.iterator += 1
return VoisinageSimple(cert.FlowshopCertificat(permut))
def giveName(self) :
return "cont"