Пример #1
0
def main():
    global ANSWERS
    global DOMAIN
    ANSWERS = mapping_benchmark.get_answers_by_qname(mapping_benchmark.SIM_READS_SAM_FILE)
    #define min and max values, and arg for the numeric arguments we want to optimize:
    DOMAIN = [
        ((1,300),'r'), #-r Score 
        ((1,300),'q'), #-q mismatch Cost
        ((1,300),'a'), #-a gap existence cost
        ((1,300),'b'), #-b gap extension cost
        #((1,300),'A'), #-A insertion existence cost, last says this is invalid??
        #((1,300),'B'), #-B insertion extension cost, last says this is invalid??
        #((),'c'), #-c gen affine gap costs? skip for now
        ((1,300),'x'), #-x drop
        ((1,300),'y'), #-y drop gaplees
        ((1,300),'z'), #-z drop final gapped
        ((1,300),'d'), #-d min score gapless
        ((1,300),'e'), #-e min alignment score
        ((1,300),'m'), #-m multipiclity
        ((30,100),'l'), #-l min length (less than 30 is way slow!)
        #((),'r'), #-n count skip for now?
        #((),'r'), #-t temperature?
        #((),'r'), #-g gamma?
    ]
    domain = [item[0] for item in DOMAIN]
    final_scores = optimization.geneticoptimize(domain=domain, costf=cost,
                                       popsize=300, step=3, mutprob=0.2, elite=0.2,
                                       maxiter=10)
    for (score,sol) in final_scores:
        print score, gen_custom_args(sol)
 def select_opt_method(self):
     print self.flag
     if self.flag==1:
         return optimization.hillclimb(self.domain,self.fetcher.cost_func)
     elif self.flag==2:
         return optimization.annealingoptimize(self.domain,self.fetcher.cost_func)
     elif self.flag==3:
         return optimization.geneticoptimize(self.domain,self.fetcher.cost_func)
     else:
         return optimization.randomoptimize(self.domain,self.fetcher.cost_func)
Пример #3
0
def main():
    domain = [(0, (len(dorms) * 2) - i - 1) for i in range(0, len(dorms) * 2)]
    print("Random optimization:")
    s = opt.randomoptimize(domain, dormcost)
    printsolution(s)
    print("\nSimulated annealing optimization:")
    s = opt.annealingoptimize(domain, dormcost)
    printsolution(s)
    print("\nGenetic optimization:")
    s = opt.geneticoptimize(domain, dormcost)
    printsolution(s)
Пример #4
0
    def Last_process(self):
        self.Create_available_course_list()

        if self.v.get() == 0:
            solution_listt = optimization.hillclimb(self.domainn,
                                                    self.Cost_function)
            self.write_listbox(solution_listt)
        elif self.v.get() == 1:
            solution_listt = optimization.annealingoptimize(
                self.domainn, self.Cost_function)
            self.write_listbox(solution_listt)
        elif self.v.get() == 2:
            solution_listt = optimization.geneticoptimize(
                self.domainn, self.Cost_function)
            self.write_listbox(solution_listt)
        elif self.v.get() == 3:
            solution_listt = optimization.randomoptimize(
                self.domainn, self.Cost_function)
            self.write_listbox(solution_listt)
Пример #5
0
  def optimize(self):

    self.consumers = [[con.strip()] for con in self.consumers.split(',')]
    #append an empty list to each consumer to be filled by resources
    for consumer in self.consumers:
      consumer.append([]);

    #What a solution looks like:
    # [0,1,2,0,2,0,1,0,0,2,1,2,0,0,1,0,2,1,1,0,2,1,0...]
    #where each list slot represents a particular resource
    #from the resources list, and the value of a slot 
    #represents the consumer that resource is assigned to

    #What the domain looks like
    # [(0,2),(0,2),(0,2),(0,2),(0,2),(0,2),(0,2)...]

    domain = [(0,len(self.consumers)-1)] * len(self.resources)

    #Add up the total strength for each attribute possessed by a resource
    total_attr_strengths = []
    for a in range(0, len(self.resources[0]) - 1):
      total_attr_strengths.append(sum([r[a+1] for r in self.resources]))

    #Ideal attribute strength at each consumer.
    #This is simple right now becuase we're just dividing total
    #strengths by # of consumers.
    self.optimal_attr_strengths = []
    for a in range(0, len(total_attr_strengths)):
      self.optimal_attr_strengths.append(total_attr_strengths[a]/len(self.consumers))

    if self.algo == 'annealing':
      cost, sol = optimization.annealingoptimize(domain, self.provisioning_cost)
    elif self.algo == 'hillclimb':
      cost, sol = optimization.hillclimb(domain, self.provisioning_cost)
    elif self.algo == 'random':
      cost, sol = optimization.randomoptimize(domain, self.provisioning_cost)
    elif self.algo == 'genetic':
      cost, sol = optimization.geneticoptimize(domain, self.provisioning_cost)
    else:
      raise ValueError('Invalid algorithm')

    return cost, sol
Пример #6
0
    draw = ImageDraw.Draw(img)

    # 建立标识位置信息的字典
    pos = dict([(people[i], (sol[i * 2], sol[i * 2 + 1]))
                for i in range(0, len(people))])

    for (a, b) in links:
        draw.line((pos[a], pos[b]), fill=(255, 0, 0))

    for n, p in pos.items():
        draw.text(p, n, (0, 0, 0))

    img.show()


domain = [(10, 370)] * (len(people) * 2)  #设定题解范围

if __name__ == "__main__":  #只有在执行当前模块时才会运行此函数
    print(domain)
    s = optimization.randomoptimize(domain, crosscount)  # 随机搜索法,寻找最优题解
    print(s)
    drawnetwork(s)  # 绘制关系网
    s = optimization.hillclimb(domain, crosscount)  # 爬山法,寻找最优题解
    print(s)
    drawnetwork(s)  # 绘制关系网
    s = optimization.annealingoptimize(domain, crosscount)  # 模拟退火算法,寻找最优题解
    print(s)
    drawnetwork(s)  # 绘制关系网
    s = optimization.geneticoptimize(domain, crosscount)  # 遗传算法,寻找最优题解
    print(s)
    drawnetwork(s)  # 绘制关系网
Пример #7
0
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)
print('Present cost:%f' % cost)
optimization.printschedule(s)

print('\n<----Genetic Algorithms---->')
s = optimization.geneticoptimize(domain, optimization.schedulecost)
print(s)
cost = optimization.schedulecost(s)
print('Present cost:%f' % cost)
optimization.printschedule(s)

# Student Dorm Problem
print('\n\n<----Student Dorm Optimization---->')
print('\n<----Random---->')
s = optimization.randomoptimize(dorm.domain, dorm.dormcost)
print('Present Cost:%d' % dorm.dormcost(s))

print('\n<----Genetic---->')
s = optimization.geneticoptimize(dorm.domain, dorm.dormcost)
print('Present Cost:%d' % dorm.dormcost(s))
dorm.printsolution(s)
Пример #8
0
    # Loop over each student
    for i in range(len(vec)):
        x = int(vec[i])
        dorm = dorms[slots[x]]
        pref = prefs[i][1]
        # First choice costs 0, second choice costs 1
        if pref[0] == dorm:
            cost += 0
        elif pref[1] == dorm:
            cost += 1
        else:
            cost += 3
        # Not on the list costs 3

        # Remove selected slot
        del slots[x]
    #print(cost)
    return cost

print(domain)

s=optimization.randomoptimize(domain,dormcost)
printsolution(s)
s=optimization.hillclimb(domain,dormcost)
printsolution(s)
s=optimization.annealingoptimize(domain,dormcost)
printsolution(s)
s=optimization.geneticoptimize(domain,dormcost,elite=0.2)
printsolution(s)
Пример #9
0
    # 遍历每一名学生
    for i in range(len(vec)):
        x = int(vec[i])
        dorm = dorms[slots[x]]
        pref = prefs[i][1]
        # 首选成本值为0,次选成本值为1
        if pref[0] == dorm: cost += 0
        elif pref[1] == dorm: cost += 1
        else: cost += 3
        # 不在选择之列则成本值为3

        # 删除选中的槽
        del slots[x]

    return cost


if __name__ == "__main__":  #只有在执行当前模块时才会运行此函数
    print(domain)
    s = optimization.randomoptimize(domain, dormcost)  # 随机搜索法,寻找最优题解
    print(s)
    printsolution(s)  # 打印最优解代表的含义
    s = optimization.hillclimb(domain, dormcost)  # 爬山法,寻找最优题解
    print(s)
    printsolution(s)  # 打印最优解代表的含义
    s = optimization.annealingoptimize(domain, dormcost)  # 模拟退火算法,寻找最优题解
    print(s)
    printsolution(s)  # 打印最优解代表的含义
    s = optimization.geneticoptimize(domain, dormcost)  # 遗传算法,寻找最优题解
    print(s)
    printsolution(s)  # 打印最优解代表的含义
Пример #10
0

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')
Пример #11
0
print('hillclimb algorithm -- schedulecost : ' )
print(optimization.schedulecost(s))

optimization.printschedule(s)
'''
'''
# annealing algorithm
s = optimization.annealingoptimize(domain, optimization.schedulecost)

print('annealing algorithm -- schedulecost : ' )
print(optimization.schedulecost(s))

optimization.printschedule(s)
'''
'''
print('---- genetic optimization algorithm ----')
s = optimization.geneticoptimize(domain, optimization.schedulecost)
print(s)

optimization.printschedule(s)
'''

s = optimization.randomoptimize(dorm.domain, dorm.dormcost)
print 'random optimize dormcost = ', dorm.dormcost(s)
dorm.printsolution(s)

s = optimization.geneticoptimize(dorm.domain, dorm.dormcost)
print 'genetic optimize dormcost = ', dorm.dormcost(s)
dorm.printsolution(s)
Пример #12
0
start = time.clock()
s = op.randomoptimize(dorm.domain, costf=dorm.dormcost)
print dorm.dormcost(s)
dorm.printsolution(s)
print 'running time', time.clock() - start
print

print 'hill climb:',
start = time.clock()
s = op.hillclimb(dorm.domain, costf=dorm.dormcost)
print dorm.dormcost(s)
dorm.printsolution(s)
print 'running time', time.clock() - start
print

print 'annealing optimization:',
start = time.clock()
s = op.annealingoptimize(dorm.domain, costf=dorm.dormcost)
print dorm.dormcost(s)
dorm.printsolution(s)
print 'running time', time.clock() - start
print

print 'genetic optimization:',
start = time.clock()
s = op.geneticoptimize(dorm.domain, costf=dorm.dormcost)
print dorm.dormcost(s)
dorm.printsolution(s)
print 'running time', time.clock() - start
print
Пример #13
0
# optimizationtest.py

import optimization

domain = [(0, 9)] * (len(optimization.people) * 2)

# hillclimb algorithm
'''
s = optimization.hillclimb(domain, optimization.schedulecost)

print('hillclimb algorithm -- schedulecost : ' )
print(optimization.schedulecost(s))

optimization.printschedule(s)
'''
'''
# annealing algorithm
s = optimization.annealingoptimize(domain, optimization.schedulecost)

print('annealing algorithm -- schedulecost : ' )
print(optimization.schedulecost(s))

optimization.printschedule(s)
'''
print('---- genetic optimization algorithm ----')
s = optimization.geneticoptimize(domain, optimization.schedulecost)
print(s)

optimization.printschedule(s)
Пример #14
0
def main():
  s = optimization.geneticoptimize(domain, defendcost)
  printdefense(s)
Пример #15
0
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()
sol = op.annealingoptimize(domain)
print op.schedulecost(sol)
op.printschedule(sol)
print 'running time',time.clock()-start
print

print 'genetic optimization:',
start = time.clock()
sol = op.geneticoptimize(domain)
print op.schedulecost(sol)
op.printschedule(sol)
print 'running time',time.clock()-start
print


Пример #16
0
#coding:utf-8
import optimization
import dorm
import socialnetwork

#s=[1,4,3,2,6,3,2,5,2,1,5,3]
#optimization.printschedule(s)
#print optimization.schedulecost(s)

# optimization ²âÊÔ
#domain = [(0,9)] * (len(optimization.people)*2)
#s = optimization.randomoptimize(domain,optimization.schedulecost)
#s = optimization.hillclimb(domain,optimization.schedulecost)
#s = optimization.annealingoptimize(domain,optimization.schedulecost)
#s = optimization.geneticoptimize(domain,optimization.schedulecost)
#print optimization.schedulecost(s)
#optimization.printschedule(s)

#dorm ²âÊÔ
#t = optimization.geneticoptimize(dorm.domain, dorm.dormcost)
#dorm.printsolution(t)

#socialnetwork ²âÊÔ
sol = optimization.geneticoptimize(socialnetwork.domain, socialnetwork.crosscount)
print socialnetwork.crosscount(sol)
socialnetwork.drawnetwork(sol)
Пример #17
0
    def Command_of_schedule_showing(self):
        if len(
                self.Course_code_shower.get(0, END)
        ) == 0:  #If there is no course code in listbox,program will show an error.
            self.Error_Message_Function(
                """Please First use the\nFetching Button""")
            return

        selections = map(int, self.Course_code_shower.curselection(
        ))  #Returning the list of indexes selected in the listbox
        all_course_types = self.Course_code_shower.get(0, END)
        selected_course_types = [all_course_types[i] for i in selections]

        if len(
                selected_course_types
        ) == 0:  #If demanded course codes is not selected,program will show an error.
            self.Error_Message_Function("""Please Select\nSome Course Code""")
            return
            #Returning the list of selected course codes.
        self.List_of_all_avaiable_courses = list()
        for course_types in selected_course_types:  #Creating a list of courses from the course code dictionary with adding lists togetgher.
            self.List_of_all_avaiable_courses.extend(
                self.Dictionary_of_course_codes[course_types])

        if len(
                self.Course_number_taker.get()
        ) == 0:  #If demanded course number is not provided,program will show an error.
            self.Error_Message_Function("""Please give\nCourse number""")
            return

        try:
            number_of_courses = int(self.Course_number_taker.get(
            ))  #Getting the demanded number of course from entry
        except:  #If it is not a number,program will comply.
            self.Error_Message_Function(
                """Please give\nCourse number\nproperlyas integer""")
            return

        if number_of_courses > len(
                self.List_of_all_avaiable_courses
        ):  #If demeanded course number exceed avaiable course number,there will be an error.
            self.Error_Message_Function(
                """These course codes\nhave insufficient course""")
            return
        self.domain = [(0, len(self.List_of_all_avaiable_courses) - i - 1)
                       for i in range(number_of_courses)]
        #Domain
        type_of_optimization = Optimization_Dictionary[self.Radio_Values.get()]
        #Type of optimization come from the dictionary.
        if type_of_optimization == "Hill Climbing":
            solution = optimization.hillclimb(self.domain,
                                              self.My_Cost_Function)

        elif type_of_optimization == "Simulated Annealing":
            solution = optimization.annealingoptimize(self.domain,
                                                      self.My_Cost_Function)

        elif type_of_optimization == "Genetic Optimization":
            if number_of_courses < 3:  #For genetic optimization,we need at least three course demand
                self.Error_Message_Function(
                    """Genetic Optimization is\n valid for \nmore than  3 courses"""
                )
                return
            solution = optimization.geneticoptimize(self.domain,
                                                    self.My_Cost_Function)

        elif type_of_optimization == "Random Optimization":
            solution = optimization.randomoptimize(self.domain,
                                                   self.My_Cost_Function)

        Last_Showing = self.My_Representation_function(
            solution
        )  #This returns a dictionary where keys are days and values will be list of tuple(time,course).
        self.Last_Showing_Part.delete(0.0, END)  #Deleting all the elements
        for days in Days_of_Week:  #List of days
            self.Last_Showing_Part.insert(END, days + ":\n")
            if days in Last_Showing:  #If day inside of dictionary, inserting all tuples in the list(value of day).
                for times, course in Last_Showing[days]:
                    self.Last_Showing_Part.insert(
                        END,
                        times + '(%s %s),' % (course.code, course.course_name))
            else:  #If day is not inside of the dictionary inserting no classes.
                self.Last_Showing_Part.insert(END, 'NO CLASSES')
            self.Last_Showing_Part.insert(END, '\n')
Пример #18
0
    return total


def drawnetwork(sol):
    # 建立image对象
    img = Image.new('RGB', (400, 400), (255, 255, 255))
    draw = ImageDraw.Draw(img)

    # 建立标志位置信息的字典
    pos = dict([(people[i], (sol[i * 2], sol[i * 2 + 1]))
                for i in range(len(people))])

    # 绘制连线
    for (a, b) in links:
        draw.line((pos[a], pos[b]), fill=(255, 0, 0))

    # 绘制代表人的节点
    for n, p in pos.items():
        draw.text(p, n, (0, 0, 0))

    img.show()


if __name__ == '__main__':
    domain = [(10, 370)] * (len(people) * 2)
    # sol = randomoptimize(domain, crosscount)
    # sol = annealingoptimize(domain, crosscount, step=50, cool=0.99)
    sol = geneticoptimize(domain, crosscount)
    print crosscount(sol), sol
    drawnetwork(sol)
        x = int(vec[i])
        dorm = dorms[slots[x]]
        pref = prefs[i][1]
        # first choice costs 0, second choice costs 1
        if pref[0] == dorm:
            cost += 0
        elif pref[1] == dorm:
            cost += 1
        else:
            # not on the list costs 3
            cost += 3

        # remove the selected slot
        del slots[x]

    return cost


if __name__ == "__main__":
    # printsolution([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

    s = optimization.randomoptimize(domain, dormcost)
    print "Random searching", dormcost(s)
    printsolution(s)
    print '\n'

    s = optimization.geneticoptimize(domain, dormcost)
    print "Genetic algorithms", dormcost(s)
    printsolution(s)
    print '\n'
Пример #20
0
reload(optimization)
domain = [(0,9)] * (len(optimization.people) * 2)
s = optimization.randomoptimize(domain, optimization.schedulecost)
optimization.schedulecost(s)
optimization.printschedule(s)

s = optimization.hillclimb(domain, optimization.schedulecost)
optimization.schedulecost(s)
optimization.printschedule(s)

s = optimization.annealingoptimize(domain, optimization.schedulecost, T=10000, cool=0.95, step=3)
optimization.schedulecost(s)
optimization.printschedule(s)

s = optimization.geneticoptimize(domain, optimization.schedulecost)
optimization.printschedule(s)

#######################
import dorm
dorm.printsolution([0,0,0,0,0,0,0,0,0,0])

s = optimization.randomoptimize(dorm.domain, dorm.dormcost)
dorm.dormcost(s)
s = optimization.geneticoptimize(dorm.domain, dorm.dormcost)
dorm.printsolution(s)

#######################
import socialnetwork
import optimization
sol = optimization.randomoptimize(socialnetwork.domain, socialnetwork.crosscount)
def knn2(d, v):
    return numpredict.weightedknn(d, v, k=3)


print(numpredict.crossvalidate(knn1, data))
print(numpredict.crossvalidate(knn2, data))

# Parameter tuning
import optimization
print('<----Parameter tuning---->')
data2 = numpredict.wineset2()
print(numpredict.crossvalidate(knn1, data2))
print(numpredict.crossvalidate(numpredict.weightedknn, data2))
print('<--scaling-->')
sdata = numpredict.rescale(data2, [10, 10, 0, 0.5])
print(numpredict.crossvalidate(knn1, sdata))
print('<--optimizing-->')
costf = numpredict.createcostfunction(numpredict.knnestimate, data2)
print(optimization.geneticoptimize(numpredict.weightdomain, costf, step=2))

# Probability Density
print('\n<----Probability Density---->')
data3 = numpredict.wineset3()
numpredict.cumulativegraph(data3, (99, 20), 120)
numpredict.probabilitygraph(data3, (99, 20), 120)

# eBay API
# remaining problems
# import  ebaypredict
# laptops = ebaypredict.doSearch('laptop')
# print(laptops[:10])
             [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')
Пример #23
0

print 'hill climb:',
start = time.clock()
sol = op.hillclimb(so.domain,so.crosscount)
print so.crosscount(sol)
print 'running time',time.clock()-start
print
so.drawnetwork(sol)

print 'annealing optimization:',
start = time.clock()
sol = op.annealingoptimize(so.domain,so.crosscount)
print so.crosscount(sol)
print 'running time',time.clock()-start
print
so.drawnetwork(sol)

print 'genetic optimization:',
start = time.clock()
sol = op.geneticoptimize(so.domain,so.crosscount)
print so.crosscount(sol)
print 'running time',time.clock()-start
print
so.drawnetwork(sol)





Пример #24
0
def changedomain(domain, newdomain, sol):
    return [
        newdomain[i][0] + sol[i] / (domain[i][1] - domain[i][0]) *
        (newdomain[i][1] - newdomain[i][0]) for i in range(len(domain))
    ]


def costf(sol):
    newsol = changedomain(domain, newdomain, sol)
    d = newsol[0] * 1e-3
    epsr = newsol[1]
    epsf = newsol[2]
    w = 2 * math.pi * newsol[3] * 1e9
    EPS = epsr - 1j * epsf
    gamma = 1j * w / c * cmath.sqrt(EPS)
    Zf = Z0 / cmath.sqrt(EPS) * cmath.tanh(gamma * d)
    return abs((Zf - Z0) / (Zf + Z0))**2


sol = optimization.geneticoptimize(domain,
                                   costf,
                                   popsize=50,
                                   step=1,
                                   mutprob=0.2,
                                   elite=0.2,
                                   maxiter=100)
#sol=optimization.annealingoptimize(domain,costf,T=10000.0,cool=0.95,step=1)
#sol=optimization.randomhillclimb(domain,costf,N=100)
newsol = changedomain(domain, newdomain, sol)
print(newsol)
Пример #25
0
# op.printschedule(s)
# print(op.schedulecost(s))
domain = [(0, 9)] * (len(op.people) * 2)
# s = op.randomoptimize(domain, op.schedulecost)
# s = op.hillclimb(domain, op.schedulecost)
# s = op.annealingoptimize(domain, op.schedulecost)
# s = op.geneticoptimize(domain, op.schedulecost)
# print(domain,s)
# print(op.schedulecost(s))
# op.printschedule(s)

result = {'rand': [], 'hill': [], 'anne': [], 'gene': []}
for i in range(10):
    s1 = op.randomoptimize(domain, op.schedulecost)
    result['rand'].append(op.schedulecost(s1))

    s2 = op.hillclimb(domain, op.schedulecost)
    result['hill'].append(op.schedulecost(s2))

    s3 = op.annealingoptimize(domain, op.schedulecost)
    result['anne'].append(op.schedulecost(s3))

    s4 = op.geneticoptimize(domain, op.schedulecost)
    result['gene'].append(op.schedulecost(s4))

print(result)
print('rand', sum(result['rand']) / 10, min(result['rand']))
print('hill', sum(result['hill']) / 10, min(result['hill']))
print('anne', sum(result['anne']) / 10, min(result['anne']))
print('gene', sum(result['gene']) / 10, min(result['gene']))
Пример #26
0
def test_genetic(domain):
    sys.stderr.write("testing genetic optimization...\n")
    s = optimization.geneticoptimize(domain, optimization.schedulecost)
    optimization.printschedule(s)