Example #1
0
        
        shakes.append(Permutation(size,p))
        shakes.append(Permutation(size,p1))
        shakes.append(Permutation(size,p2))
        shakes.append(Permutation(size,p3))
        shakes.append(Permutation(size,p4))    
        shakes.append(Permutation(size,p1_2))
        shakes.append(Permutation(size,p1_3))
        shakes.append(Permutation(size,p1_4))
        shakes.append(Permutation(size,p2_3))
        shakes.append(Permutation(size,p2_4))
        shakes.append(Permutation(size,p3_4))

    if _debug>0: print "----- \n\n"
    
    curr_order = _instance.becker_order()

    if _debug>0: print "first local search"
    _start = time.time()

    maxima = localsearch(_instance, curr_order)

    if _debug>0: print "creating shakes ..."


    if _debug>0: print "starting ILS"
    i_out = ils(_instance,maxima['order'],shakes)
    _stop = time.time()
    
    print "best: %s" % i_out
    print "LS/ILS: %d / %d" % (_ls_runs, _ils_runs)
Example #2
0
id=Permutation(size)
shakes1={}
for i in range(size/4):
    s = int(size/4)
    n= "( %04u %04u %04u %04u )" % (i, i+2*s, i+s, i+3*s)
    shakes1[n]=Permutation(size,   [i, i+2*s, i+s, i+3*s])
    n= "( %04u %04u )( %04u %04u )" % (i, i+2*s, i+1,i+2*s+1)
    shakes1[n]=Permutation(size,   {i:i+2*s, i+2*s:i, i+1:i+2*s+1,i+2*s+1:i+1})
#    n= "( %04u %04u %04u %04u )" % (i, i+3*s, i+2*s, i+s)
#    shakes1[n]=permutation(size,   [i, i+3*s, i+2*s, i+s])

hipotetical_cost = instance.hipotetical_cost()
print "hipotetical maximal: %d" % hipotetical_cost

best_order = instance.becker_order()
print "best_order: " + str(best_order)
instance.order(best_order)
best_cost = instance.cost(best_order)

print "initial cost: %d" % best_cost

best_changed = False
for s in ["id" ] + sorted(shakes1.keys()):
    if s != "id":
        print "shaking: %s" % s 
        shaked_order = shakes1[s](best_order)
        instance.order(shaked_order)

    print "starting LS cost: %d " % instance.cost() 
    local_minima = False