Beispiel #1
0
 def setUp(self):
     self.hracia_plocha1 = funkcie.plocha()
     self.hracia_plocha2 = funkcie.plocha()
     self.hracia_plocha2[4][8] = 0
     self.hracia_plocha2[5][8] = 0
     self.hracia_plocha2[6][8] = 0
     self.hracia_plocha2[7][8] = 0
     self.hracia_plocha2[8][8] = 0
     self.hracia_plocha3 = funkcie.plocha()
     self.hracia_plocha3[4][8] = 0
     self.hracia_plocha3[5][8] = 0
     self.hracia_plocha3[6][8] = 0
     self.hracia_plocha3[7][8] = 0
     self.hracia_plocha3[8][8] = 0
     self.hracia_plocha3[6][4] = 0
     self.hracia_plocha3[6][5] = 0
     self.hracia_plocha3[6][6] = 0
     self.hracia_plocha3[6][7] = 0
     self.hracia_plocha4 = funkcie.plocha()
     self.hracia_plocha4[4][8] = 0
     self.hracia_plocha4[5][8] = 0
     self.hracia_plocha4[6][8] = 0
     self.hracia_plocha4[7][8] = 0
     self.hracia_plocha4[8][8] = 0
     self.hracia_plocha4[6][4] = 0
     self.hracia_plocha4[6][5] = 0
     self.hracia_plocha4[6][6] = 0
     self.hracia_plocha4[6][7] = 0
     self.hracia_plocha4[6][9] = 0
     self.hracia_plocha4[6][10] = 0
     self.hracia_plocha4[6][11] = 0
     self.hracia_plocha4[6][12] = 0
     self.hracia_plocha4[6][13] = 0
     self.hracia_plocha4[6][14] = 0
     self.hracia_plocha4[6][15] = 0
     self.hracia_plocha5 = funkcie.plocha()
     self.hracia_plocha5[4][8] = 1
     self.hracia_plocha5[5][8] = 1
     self.hracia_plocha5[6][8] = 2
     self.hracia_plocha5[7][8] = 3
     self.hracia_plocha5[8][8] = 1
     self.hracia_plocha5[4][6] = 1
     self.hracia_plocha5[5][6] = 1
     self.hracia_plocha5[6][6] = 7
     self.hracia_plocha5[7][6] = 4
     self.hracia_plocha5[4][7] = 2
     self.hracia_plocha5[8][6] = 1
     self.hracia_plocha5[6][4] = 1
     self.hracia_plocha5[6][5] = 1
     self.hracia_plocha5[6][6] = 1
     self.hracia_plocha5[6][7] = 1
     self.hracia_plocha5[6][9] = 0
     self.hracia_plocha5[6][10] = 0
     self.hracia_plocha5[6][11] = 0
     self.hracia_plocha5[6][12] = 0
     self.hracia_plocha5[6][13] = 0
     self.hracia_plocha5[6][14] = 0
     self.hracia_plocha5[6][15] = 1
Beispiel #2
0
def anneal(fun, init_temp, ticks, opt = 1):
    hracia_plocha = funkcie.plocha()
    rozlozenie_cur = funkcie.rozlozenie()
    funkcie.inicializuj(hracia_plocha, rozlozenie_cur)
    cur = funkcie.plocha(hracia_plocha)
    best = funkcie.plocha(hracia_plocha)
    ebest = fun(best, opt)
    ecur = fun(cur, opt)
    temp = init_temp
    delta_e = 0
    while temp > init_temp/ticks:
        temp -= init_temp/ticks
        new_plocha = funkcie.plocha(cur)
        rozlozenie_new = funkcie.rozlozenie(rozlozenie_cur)
        funkcie.generuj(rozlozenie_new, new_plocha)
        enew = fun(new_plocha, opt)
        delta_e += math.fabs(enew - ecur)
        probability = funkcie.prob(ecur, enew, temp)
        randomnumber = random.random()
        if probability > randomnumber:
#            print(ecur - enew, temp)
            cur = funkcie.plocha(new_plocha)
            rozlozenie_cur = funkcie.rozlozenie(rozlozenie_new)
            ecur = fun(cur, opt)
            if ecur < ebest:
                best = funkcie.plocha(cur)
                ebest = fun(best, opt)

    ebest = funkcie.finalenergy(best)
    funkcie.vypis_plochu(best)
    print ("ebest: %d" % ebest)
    return ebest, delta_e