简介
optimization用来解决以下问题:有多个变量协作,多种可能方法,输出很大程度上依赖各种变量的协作。
预测:通过尝试多种不同方法,并为它们打分来决定其效果。
#!/usr/bin/python
import time
import random
import math
#元组中存放的是人和其家乡
people = [('Seymour','BOS'),('Franny','DAL'),('Zooey','CAK'),('Walt','MIA'),
('Buddy','ORD'),('Les','OMA')]
destination='LGA'
flights={}
#将小时格式时间转换为分钟
def getminutes(t):
x=time.strptime(t,'%H:%M')
return x[3]*60+x[4]
#schedule.txt的文件格式:DAL,LGA,10:30,14:57,290
#其中DAL为起飞地、LGA为目的地,以及起飞时间、到达时间和价格
def loadflights(flightInfo):
fp = open(flightInfo,'r')
for line in fp.readlines():
origin,dest,depart,arrive,price=line.strip().split(',')
flights.setdefault((origin,dest),[])
flights[(origin,dest)].append((depart,arrive,price))
#r:[1,4,3,2,7,3,6,3,2,4,5,3],6个人乘坐的航班信息
#此列表代表了一个解决方案
#因为涉及到来回,所以r的长度为人数*2,所以第一和第二个元素代表了某人的去回的两趟
#航班信息
def printschedual(r):
for d in range(len(r)/2):
name=people[d][0]
origin=people[d][1]
out=flights[(origin,destination)][r[d]]
ret=flights[(destination,origin)][r[d+1]
print '%10s%10s %5s-%5s $%3s %5s-%5s $%3s' % (name,origin,\
out[0],out[1],out[2],\
ret