91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡(jiǎn)介

python窗體實(shí)現(xiàn)線性規(guī)劃中的單純形法,其中包含一個(gè)主要實(shí)現(xiàn)單純形表算法的LPtable.py和實(shí)現(xiàn)tkinter窗體輸入的test1.py。使用時(shí)直接在后者中點(diǎn)運(yùn)行即可。

資源截圖

代碼片段和文件信息

#?-*-?coding:?utf-8?-*-

class?Table(object):
????def?__init__(selfX_numB_numz0Xbasebound):??#初始化函數(shù)
????????self.X_num=X_num????#變量個(gè)數(shù)
????????self.B_num=B_num????#約束條件個(gè)數(shù)
????????self.z0=z0??????????#目標(biāo)函數(shù)
????????self.check=[]???????#檢驗(yàn)數(shù)
????????self.Xbase=Xbase????#基變量
????????self.bound=bound????#約束條件
????????self.flag=0?????????#解的類型

????def?FindMain(self):????#尋找主元素
????????j=self.check.index(max(self.check))?#獲取檢驗(yàn)數(shù)中最大值序號(hào)
????????theta=[]
????????for?i?in?range(self.B_num):
????????????if?self.bound[i][j]==0:?????#當(dāng)被除數(shù)為0給它一個(gè)足夠大的值
????????????????th=1000
????????????else:
????????????????th=self.bound[i][self.X_num]/self.bound[i][j]
????????????if?th<0:????????????????????????#當(dāng)theta<0時(shí)給它一個(gè)足夠大的值
????????????????th=10000
????????????theta.append(th)
????????i=theta.index(min(theta))???????????#獲取檢驗(yàn)數(shù)中最小值序號(hào)
????????main=self.bound[i][j]????????
????????return?[ijmain]

????def?baseChange(selfmodel):???#基變換
????????if?model==1:
????????????[ijmain]=self.FindMain()
????????else:
????????????[ijmain]=self.FindMain2()
????????self.Xbase[i]=j?????#更換基變量
????????for?t?in?range(self.X_num+1):
????????????self.bound[i][t]=self.bound[i][t]/main
????????for?k?in?range(self.B_num):
????????????if?k!=i:
????????????????times=self.bound[k][j]
????????????????for?t?in?range(self.X_num+1):
????????????????????temp=self.bound[i][t]*times
????????????????????self.bound[k][t]=self.bound[k][t]-temp

????def?IsEnd(self):???#檢驗(yàn)是否為最優(yōu)解且最優(yōu)解是否唯一
????????self.flag=1
????????zero=0
????????for?i?in?range(self.X_num):
????????????if?self.check[i]>0:??#檢驗(yàn)數(shù)大于0,非最優(yōu)解
????????????????self.flag=0
????????????????break
????????????if?abs(self.check[i])<0.00001:???#因?yàn)镸取1000,可能檢驗(yàn)數(shù)的計(jì)算有些許誤差
????????????????zero+=1
????????????????if?zero>self.B_num:
????????????????????self.flag=2??#檢驗(yàn)數(shù)中0的個(gè)數(shù)大于基變量個(gè)數(shù),有無窮多最優(yōu)解

????def?Iteration(self):????#迭代函數(shù)
????????lim=100??#最大迭代次數(shù)(防止無解時(shí)無限迭代)
????????while(lim>0):
????????????self.check=[]
????????????for?i?in?range(self.X_num):?????#計(jì)算檢驗(yàn)數(shù)
????????????????temp=0
????????????????for?j?in?range(self.B_num):
????????????????????temp+=self.bound[j][i]*self.z0[self.Xbase[j]]
????????????????self.check.append(self.z0[i]-temp)
????????????self.IsEnd()
????????????if?self.flag>0:
????????????????break
????????????else:
????????????????self.baseChange(1)
????????????????lim-=1
????????????
????def?Iteration2(self):????#迭代函數(shù)
????????lim=100??#最大迭代次數(shù)(防止無解時(shí)無限迭代)
????????while(lim>0):
????????????self.check=[]
????????????for?i?in?range(self.X_num):?????#計(jì)算檢驗(yàn)數(shù)
????????????????temp=0
????????????????for?j?in?range(self.B_num):
????????????????????temp+=self.bound[j][i]*self.z0[self.Xbase[j]]
????????????????self.check.append(self.z0[i]-temp)
????????????self.IsEnd2()
????????????if?self.flag>0:
????????????????break
????????????else:
????????????????self.baseChange(2)
????????????????lim-=1
????????
????def?IsEnd2(self):
????????self.flag=1
????????for?i?in?range(self.B_num):
????????????if?self.bound[i][self.X_num]<0:
????????????????self.flag=0
????

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2020-03-27?15:13??LP\
?????文件????????4071??2020-03-27?15:07??LP\LPTable.py
?????目錄???????????0??2020-03-27?15:17??__MACOSX\
?????目錄???????????0??2020-03-27?15:17??__MACOSX\LP\
?????文件?????????425??2020-03-27?15:07??__MACOSX\LP\._LPTable.py
?????文件????????6148??2020-03-27?15:13??LP\.DS_Store
?????文件?????????120??2020-03-27?15:13??__MACOSX\LP\._.DS_Store
?????文件????????5731??2020-03-27?15:07??LP\test1.py
?????文件?????????425??2020-03-27?15:07??__MACOSX\LP\._test1.py
?????文件?????????427??2020-03-27?15:13??__MACOSX\._LP

評(píng)論

共有 條評(píng)論