import time import random import math import optimization def randomoptimize(domain, costf): best = 999999999 bestr = None for i in range(1000): # 無作為解の生成 r = [random.randint(domain[i][0], domain[i][1]) for i in range(len(domain))] # コストの取得 cost = costf(r) # 最良解と比較 if cost < best: best = cost bestr = r return bestr # 書籍にはrと書かれていた if __name__ == '__main__': domain = [(0,9)]*(len(optimization.people)*2) # 書籍には(0.8)と書かれていた s = randomoptimize(domain, optimization.schedulecost) optimization.printschedule(s) cost = optimization.schedulecost(s) print('cost is %4s' % (cost))
def test_print_schedule(): s = [1, 4, 3, 2, 7, 3, 6, 3, 2, 4, 5, 3] optimization.printschedule(s)
def createschedule(people, dest, dep, ret): sid = getkayaksession() flights = {} for p in people: name, origin = p # outbound flight searchid = flightsearch(sid, origin, dest, dep) flights[(origin, dest)] = flightsearchresults(sid, searchid) # return flight searchid = flightsearch(sid, dest, origin, ret) flights[(origin, dest)] = flightsearchresults(sid, searchid) return flights if __name__ == '__main__': import optimization f = createschedule([('Nico', 'SFO'), ('Kerstin', 'SFO')], 'LGA', dep='12/30/2008', ret='1/2/2009') domain = [(0, 30)] * len(f) s = optimization.geneticoptimize(domain, optimization.costfunc(f, 'LGA')) optimization.printschedule(s, 'LGA')
def printschedule(name, s): print(name) print('----------------------------------') optimization.printschedule(s)
def test_find_optimized_schedule(optimization_method): domain = [(0, 8)] * (len(optimization.people) * 2) r = optimization_method(domain, optimization.schedulecost) optimization.printschedule(r) print optimization.schedulecost(r)
[p.firstChild.data.split(' ')[1] for p in arrivals], [parseprice(p.firstChild.data) for p in prices]) def createschedule(people, dest, dep, ret): sid = getkayaksession() flights = {} for p in people: name, origin = p # outbound flight searchid = flightsearch(sid, origin, dest, dep) flights[(origin, dest)] = flightsearchresults(sid, searchid) # return flight searchid = flightsearch(sid, dest, origin, ret) flights[(origin, dest)] = flightsearchresults(sid, searchid) return flights if __name__ == '__main__': import optimization f = createschedule([('Nico', 'SFO'), ('Kerstin', 'SFO')], 'LGA', dep='12/30/2008', ret='1/2/2009') domain = [(0, 30)] * len(f) s = optimization.geneticoptimize(domain, optimization.costfunc(f, 'LGA')) optimization.printschedule(s, 'LGA')
import optimization import dorm import socialnetwork # Group Travel Problem print('<----Group Travel---->') s = [1, 4, 3, 2, 7, 3, 6, 3, 2, 4, 5, 3] optimization.printschedule(s) cost = optimization.schedulecost(s) print('Present cost:%f' % cost) print('\n<----Random Searching---->') domain = [(0, 9)] * (len(optimization.people) * 2) print(s) s = optimization.randomoptimize(domain, optimization.schedulecost) cost = optimization.schedulecost(s) print('Present cost:%f' % cost) optimization.printschedule(s) print('\n<----Hill Climbing---->') s = optimization.hillclimb(domain, optimization.schedulecost) print(s) cost = optimization.schedulecost(s) print('Present cost:%f' % cost) optimization.printschedule(s) print('\n<----Simulated Annealing---->') s = optimization.annealingoptimize(domain, optimization.schedulecost) print(s) cost = optimization.schedulecost(s)
import optimization as op import time s = [1,4,3,2,7,3,6,3,2,4,5,3] domain = [(0,9)]*len(s) print 'fix:', start = time.clock() print op.schedulecost(s) op.printschedule(s) print 'running time',time.clock()-start print print 'random optimization:', start = time.clock() sol = op.randomoptimize(domain) print op.schedulecost(sol) op.printschedule(sol) print 'running time',time.clock()-start print print 'hill climb:', start = time.clock() sol = op.hillclimb(domain) print op.schedulecost(sol) op.printschedule(sol) print 'running time',time.clock()-start print print 'annealing optimization:', start = time.clock()
# uWorldBank,uRiver,uEarth =201,202,203 # mynet.generatehiddennode([wWorld,wBank],[uWorldBank,uRiver,uEarth]) # for c in mynet.con.execute('select * from wordhidden'):print c # # for c in mynet.con.execute('select * from hiddenurl'):print c # # mynet.trainquery([wWorld,wBank],[uWorldBank,uRiver,uEarth],uWorldBank) # mynet.getresult([wWorld,wBank],[uWorldBank,uRiver,uEarth]) # # s=[1,4,3,2,7,3,6,3,2,4,5,3] # from improve_schedulecost import improve_schedulecost # money=improve_schedulecost(s) # print 'totalprice='+str(money) from annealing_algorithm import annealing_algorithm from optimization import schedulecost from optimization import people from optimization import printschedule domain=[(0,9)]*(len(people)*2) # s,costf=annealing_algorithm(domain,schedulecost) # printschedule(s) # print costf from genetic_algorithm import genetic_algorithm s=genetic_algorithm(domain,schedulecost) printschedule(s) # from optimization import geneticoptimize # s=geneticoptimize(domain,schedulecost) # printschedule(s)
# uWorldBank,uRiver,uEarth =201,202,203 # mynet.generatehiddennode([wWorld,wBank],[uWorldBank,uRiver,uEarth]) # for c in mynet.con.execute('select * from wordhidden'):print c # # for c in mynet.con.execute('select * from hiddenurl'):print c # # mynet.trainquery([wWorld,wBank],[uWorldBank,uRiver,uEarth],uWorldBank) # mynet.getresult([wWorld,wBank],[uWorldBank,uRiver,uEarth]) # # s=[1,4,3,2,7,3,6,3,2,4,5,3] # from improve_schedulecost import improve_schedulecost # money=improve_schedulecost(s) # print 'totalprice='+str(money) from annealing_algorithm import annealing_algorithm from optimization import schedulecost from optimization import people from optimization import printschedule domain = [(0, 9)] * (len(people) * 2) # s,costf=annealing_algorithm(domain,schedulecost) # printschedule(s) # print costf from genetic_algorithm import genetic_algorithm s = genetic_algorithm(domain, schedulecost) printschedule(s) # from optimization import geneticoptimize # s=geneticoptimize(domain,schedulecost) # printschedule(s)
from pprint import pprint import optimization domain = [(0, 9)] * (len(optimization.people) * 2) # random search s = optimization.randomoptimize(domain, optimization.schedulecost) print(optimization.schedulecost(s)) pprint(optimization.printschedule(s)) # hillclimb s = optimization.hillclimb(domain, optimization.schedulecost) print(optimization.schedulecost(s)) optimization.printschedule(s) # simulated annealing s = optimization.annealingoptimize(domain, optimization.schedulecost) print(optimization.schedulecost(s)) pprint(optimization.printschedule(s)) # genetic algorithms s = optimization.geneticoptimize(domain, optimization.schedulecost) # print(optimization.schedulecost(s)) pprint(optimization.printschedule(s))
def test_printschedule(s): sys.stderr.write("testing printschedule...\n") optimization.printschedule(s)
def test_genetic(domain): sys.stderr.write("testing genetic optimization...\n") s = optimization.geneticoptimize(domain, optimization.schedulecost) optimization.printschedule(s)
def test_annealing(domain): sys.stderr.write("testing annealing optimization...\n") s = optimization.annealingoptimize(domain, optimization.schedulecost) print optimization.schedulecost(s) optimization.printschedule(s)
def test_hillclimb(domain): sys.stderr.write("testing hillclimb optimization...\n") s = optimization.hillclimb(domain, optimization.schedulecost) print optimization.schedulecost(s) optimization.printschedule(s)
def test_randomoptimize(domain): sys.stderr.write("testing random optimization...\n") s = optimization.randomoptimize(domain, optimization.schedulecost) print optimization.schedulecost(s) optimization.printschedule(s)