決策支持系統(tǒng)作業(yè)_第1頁(yè)
決策支持系統(tǒng)作業(yè)_第2頁(yè)
決策支持系統(tǒng)作業(yè)_第3頁(yè)
決策支持系統(tǒng)作業(yè)_第4頁(yè)
決策支持系統(tǒng)作業(yè)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)決策支持系統(tǒng)導(dǎo)論期末作業(yè) 姓名: 學(xué)號(hào):1、設(shè)某企業(yè)生產(chǎn)多種最終產(chǎn)品Y=(yi),各種產(chǎn)品的單價(jià)為Pi,它們的投入產(chǎn)出直接消耗系數(shù)為A=(aij),企業(yè)的資源(煤、電力、勞力)的約束方程為BXh(“”表示),其中,B=(bij)是資源消耗系數(shù)矩陣,X=(xi)是企業(yè)總產(chǎn)品向量,h是資源約束向量。為使企業(yè)凈產(chǎn)值最大,其目標(biāo)方程S=maxPiyi,試安排生產(chǎn)計(jì)劃(求總產(chǎn)品X和最終產(chǎn)品Y)。請(qǐng)?jiān)O(shè)計(jì)該企業(yè)的生產(chǎn)計(jì)劃決策支持系統(tǒng),畫出DSS運(yùn)行結(jié)構(gòu)圖,并對(duì)總控程序、模型程序、數(shù)據(jù)

2、庫(kù)進(jìn)行結(jié)構(gòu)和功能說明。提示:該決策支持系統(tǒng)需要利用3個(gè)模型(投入產(chǎn)出模型、線性規(guī)劃模型和報(bào)表模型(打印投入產(chǎn)出表)和兩個(gè)數(shù)據(jù)庫(kù)(投入產(chǎn)出數(shù)據(jù)庫(kù)和線性規(guī)劃數(shù)據(jù)庫(kù))。在DSS總控程序中要詳細(xì)說明何時(shí)調(diào)用哪個(gè)模型運(yùn)行,何時(shí)存取哪個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù),何時(shí)進(jìn)行數(shù)據(jù)計(jì)算。該DSS需要兩次調(diào)用投入產(chǎn)出模型:一次計(jì)算中間結(jié)果,一次計(jì)算最后結(jié)果。請(qǐng)注意,模型程序應(yīng)該是一個(gè)標(biāo)準(zhǔn)程序,在一定的參數(shù)控制下,可得到中間結(jié)果,也可得到最終結(jié)果。該模型程序既適合于該問題的DSS,也適合于其他問題的DSS,不能是一個(gè)專用的模型程序。(20分)模型投入產(chǎn)出模型投入:經(jīng)濟(jì)部門在進(jìn)行經(jīng)濟(jì)活動(dòng)時(shí)候的資源消耗;產(chǎn)出:經(jīng)濟(jì)部門在進(jìn)行經(jīng)濟(jì)活

3、動(dòng)時(shí)候的成果;投入產(chǎn)出模型表示的是各個(gè)經(jīng)濟(jì)部門之間的投入產(chǎn)出關(guān)系。根據(jù)公式可求得中間結(jié)果值X與最終產(chǎn)品值Y之間的關(guān)系:X=(I-A)-1Y2.線性規(guī)劃模型:根據(jù)約束方程BXh與目標(biāo)方程S=Piyimax,輸入?yún)?shù)為B、P、h,運(yùn)用模型中的數(shù)學(xué)公式求解問題,最后輸出Y即為最終結(jié)果。報(bào)表模型調(diào)用投入產(chǎn)出數(shù)據(jù)庫(kù)中的數(shù)據(jù),根據(jù)投入產(chǎn)出模型的分析結(jié)果,得到投入產(chǎn)出表,并將其打印出來。不需要輸入?yún)?shù),可以手動(dòng)調(diào)用,也可以用時(shí)間來觸發(fā),生成表格。數(shù)據(jù)庫(kù)投入產(chǎn)出數(shù)據(jù)庫(kù) 首先對(duì)數(shù)據(jù)進(jìn)行初始化,存入投入產(chǎn)出相關(guān)的數(shù)據(jù),包括最終產(chǎn)品Y=(yj),各種產(chǎn)品的單價(jià)Pi,它們的投入產(chǎn)出直接消耗系數(shù)A=(aij),企業(yè)總產(chǎn)

4、品向量X=(xi)等用于投入產(chǎn)出表計(jì)算的重要數(shù)據(jù),方便模型對(duì)數(shù)據(jù)的提取。數(shù)據(jù)庫(kù)本身可以對(duì)數(shù)據(jù)進(jìn)行維護(hù),如自動(dòng)初始化,自動(dòng)更新等操作。字段名數(shù)據(jù)類型長(zhǎng)度是否可為空最終產(chǎn)品int8是int8是int8是int8是int8是產(chǎn)品單價(jià)float16是float16是float16是float16是float16是直接消耗系數(shù)float16是float16是float16是float16是float16是線性規(guī)劃數(shù)據(jù)庫(kù) 對(duì)數(shù)據(jù)進(jìn)行初始化,存儲(chǔ)的數(shù)據(jù)包括最終產(chǎn)品Y=(yj),各種產(chǎn)品的單價(jià)為Pi,資源消耗系數(shù)矩陣B=(bij),企業(yè)總產(chǎn)品向量X=(xi)企業(yè)的資源(煤、電力、勞力)的約束方程為BXh(“”

5、表示)目標(biāo)方程S=Piyi 等線性規(guī)劃是需要的數(shù)據(jù)。字段名數(shù)據(jù)類型長(zhǎng)度是否可為空資源消耗系數(shù)float8是float8是float8是float8是float8是總產(chǎn)品int16是int16是int16是int16是int16是資源約束hfloat16是最終產(chǎn)品int8是int8是int8是int8是int8是產(chǎn)品單價(jià)float16是float16是float16是float16是float16是三、總控程序(1)根據(jù)系統(tǒng)提示選擇需要的服務(wù),輸入提示要求的相關(guān)數(shù)據(jù),保存到數(shù)據(jù)庫(kù)中。(2)調(diào)用投入產(chǎn)出模型,提取投入產(chǎn)出數(shù)據(jù)庫(kù)中A、Y 作為模型的輸入?yún)?shù)。調(diào)用模型內(nèi)部的公式解決問題,根據(jù)輸入?yún)?shù)判

6、斷需要輸出的是中間結(jié)果還是最終結(jié)果,將結(jié)果輸并存入投入產(chǎn)出數(shù)據(jù)庫(kù)中。(3)調(diào)用線性模型,提取線性規(guī)劃數(shù)據(jù)庫(kù)中的數(shù)據(jù)作為輸入?yún)?shù),根據(jù)模型內(nèi)部公式進(jìn)行數(shù)據(jù)計(jì)算,既要符合約束條件,又要使得目標(biāo)函數(shù)值最大,最終得出Y 向量,將結(jié)果輸出并存入投入產(chǎn)出數(shù)據(jù)庫(kù)。(4)調(diào)用投入產(chǎn)出模型,提取投入產(chǎn)出數(shù)據(jù)庫(kù)中的A、Y 作為輸入?yún)?shù)。調(diào)用模型內(nèi)部公式計(jì)算出需要的結(jié)果X,根據(jù)輸入?yún)?shù)判斷需要的輸出結(jié)果,輸出結(jié)果,并存入投入產(chǎn)出數(shù)據(jù)庫(kù)。(5)調(diào)用報(bào)表模型,提取投入產(chǎn)出數(shù)據(jù)庫(kù)中的數(shù)據(jù),得出投入產(chǎn)出表并打印。四、運(yùn)行結(jié)構(gòu)圖 教材中3.6節(jié)物資分配與調(diào)撥決策支持系統(tǒng),詳細(xì)給出模型庫(kù)設(shè)計(jì),包括主要模型、存儲(chǔ)形式說明,數(shù)據(jù)庫(kù)

7、設(shè)計(jì),各接口說明(各模塊之間的調(diào)用順序、數(shù)據(jù)存取關(guān)系)。(30分)一、分析問題物資分配調(diào)撥問題是根據(jù)各單位提出對(duì)物資的需求申請(qǐng),按倉(cāng)庫(kù)的庫(kù)存情況制定分配方案,再根據(jù)分配放案以及倉(cāng)庫(kù)和單位的距離制定物資運(yùn)輸方案。最后按照物資運(yùn)輸方案制定各倉(cāng)庫(kù)的發(fā)貨表和各單位的接收表,修改各倉(cāng)庫(kù)庫(kù)存數(shù)和各單位的物資數(shù)。物資申請(qǐng)和庫(kù)存的計(jì)劃匯總制定物資分配方案物資調(diào)撥預(yù)處理制定物資運(yùn)輸方案制定物資調(diào)撥方案打印報(bào)表該決策問題需要設(shè)計(jì)多個(gè)數(shù)據(jù)庫(kù)和多個(gè)模型共同求解??偟奶幚砹鞒倘鐖D: 圖3 物資分配調(diào)撥流程圖具體方案通過上述分析可知該決策問題共涉及6個(gè)模型:匯總模型,預(yù)處理模型、分配模型、運(yùn)輸優(yōu)化模型、調(diào)撥模型、制表模型

8、。其中匯總、預(yù)處理、調(diào)撥、制表模型都是數(shù)據(jù)處理模型,屬于管理業(yè)務(wù)工作。分配和運(yùn)輸優(yōu)化屬于數(shù)學(xué)模型。分配模型屬于平衡分配決策,它要達(dá)到的目標(biāo)是使物資分配盡量合理,該模型的計(jì)算公式是分配決策方法之一,也可以采用別的分配方法。運(yùn)輸模型屬于優(yōu)化決策,它使運(yùn)輸過程達(dá)到總噸公里數(shù)最小。該6個(gè)模型以程序形式出現(xiàn),均放入模型庫(kù)中。該方案包括十個(gè)數(shù)據(jù)表(1)單位申請(qǐng)數(shù)據(jù)表;(2)倉(cāng)庫(kù)庫(kù)存數(shù)據(jù)表;(3)物資總申請(qǐng)數(shù)據(jù)表;(4)物資總庫(kù)存數(shù)據(jù)表;(5)物資分配數(shù)據(jù)表;(6)距離數(shù)據(jù)表;(7)物資調(diào)撥數(shù)據(jù)表;(8)倉(cāng)庫(kù)發(fā)貨數(shù)據(jù)表;(9)單位收貨數(shù)據(jù)表;(10)單位物資數(shù)據(jù)表。三、具體表設(shè)計(jì)(1)單位申請(qǐng)數(shù)據(jù)表名稱類型

9、長(zhǎng)度是否允許為空描述marketno(pk)char3否單位號(hào)goodsno(fk)char13否資源編號(hào)goodssumbigint10是申請(qǐng)數(shù)量(2)倉(cāng)庫(kù)庫(kù)存表 名稱類型長(zhǎng)度是否允許為空描述w_no(pk)char3否倉(cāng)庫(kù)號(hào)goodsno(fk)char13否資源號(hào)goodsnumbigint10是庫(kù)存量unitvarchar6否數(shù)量單位(3)物資分配數(shù)據(jù)表 名稱類型長(zhǎng)度是否允許為空描述marketno(pk)char3否單位號(hào)goodsno(fk)char13否資源編號(hào)goodssumbigint10是分配數(shù)量(4)距離數(shù)據(jù)表名稱類型長(zhǎng)度是否允許為空描述marketno(pk)char3

10、否單位號(hào)w_no(fk)char3否倉(cāng)庫(kù)號(hào)distancevarchar10否距離unitvarchar10否計(jì)量單位(5)物資調(diào)撥分配數(shù)據(jù)表名稱類型長(zhǎng)度是否允許為空描述marketno(pk)char3否單位號(hào)w_no(fk)char3否倉(cāng)庫(kù)號(hào)goodsno(fk)char13否資源號(hào)goodsnumbigint10否分配數(shù)量(6)單位收貨數(shù)據(jù)表名稱類型長(zhǎng)度是否允許為空描述marketno(pk)char3否單位號(hào)goodsno(fk)char13否資源編號(hào)goodssumbigint10是收物數(shù)量(7)倉(cāng)庫(kù)發(fā)貨數(shù)據(jù)表名稱類型長(zhǎng)度是否允許為空描述w_no(pk)char3否倉(cāng)庫(kù)號(hào)goodsn

11、o(fk)char13否資源編號(hào)goodssumbigint10是發(fā)物數(shù)量(8)物資總庫(kù)存數(shù)據(jù)表名稱類型長(zhǎng)度是否為空?描述W_no(pk)char3否倉(cāng)庫(kù)號(hào)Goodsno(pk)char13否物資號(hào)goodsnumbigint10是物資數(shù)量(9)物資分配數(shù)據(jù)表名稱類型長(zhǎng)度是否為空?描述Marketno(pk)char3否單位號(hào)Goodsno(pk)char13否物資號(hào)goodsnumbigint10是物資數(shù)量(10)單位物資數(shù)據(jù)表。名稱類型長(zhǎng)度是否允許為空描述marketno(pk)char3否單位號(hào)goodsno(fk)char13否資源號(hào)goodsnumbigint10是庫(kù)存量unitva

12、rchar6否數(shù)量單位四、各接口說明(各模塊之間的調(diào)用順序、數(shù)據(jù)存取關(guān)系)。4.1物資申請(qǐng)和庫(kù)存的計(jì)劃匯總1.各單位按自己的需求提出對(duì)各物資的申請(qǐng)申請(qǐng)數(shù)據(jù)庫(kù)為:Di=SQ(W1),SQ(W2), i=1,2,3 (1.1)其中Di表示第i各單位,SQ(Wj)表示申請(qǐng)物資Wj的需要數(shù)量。將各單位的申請(qǐng)數(shù)據(jù)庫(kù)匯總成各單位對(duì)物資的需求量,形成總申請(qǐng)數(shù)據(jù)庫(kù)。Wj= SQ(D1),SQ(D2), j=1,2,3 (1.2)其中SQ(Di)表示第i個(gè)單位對(duì)物資Wj的申請(qǐng)數(shù)量。該項(xiàng)數(shù)據(jù)處理需要編制程序,類似于數(shù)據(jù)庫(kù)的旋轉(zhuǎn)來完成。2.各倉(cāng)庫(kù)度物資的可供應(yīng)情況Ki=XY(W1)KD(W1),XY(W2)KD(W

13、2), i=1,2, (1.3)其中Ki表示第i個(gè)倉(cāng)庫(kù);XY(Wj), KD(Wj)分別表示該倉(cāng)庫(kù)中物資Wj的現(xiàn)有數(shù)量和最低儲(chǔ)備量;XY(Wj)KD(Wj)表示物質(zhì)Wj的可供量。各倉(cāng)庫(kù)的多物資的可供應(yīng)情況匯總成某一物資個(gè)倉(cāng)庫(kù)的可供量,形成總庫(kù)存數(shù)據(jù)庫(kù)。 Wj=XY(K1)KD(K1),XY(K2)KD(K2), (1.4)該項(xiàng)數(shù)據(jù)處理工作,要在數(shù)據(jù)庫(kù)中計(jì)算出可供量后,再進(jìn)行類似于數(shù)據(jù)庫(kù)旋轉(zhuǎn)來實(shí)現(xiàn)。該計(jì)劃匯總工作構(gòu)成數(shù)據(jù)處理模型,它與數(shù)據(jù)庫(kù)的關(guān)系如圖:?jiǎn)挝簧暾?qǐng)數(shù)據(jù)庫(kù)倉(cāng)庫(kù)庫(kù)存數(shù)據(jù)庫(kù)計(jì) 劃匯 總物資總申請(qǐng)數(shù)據(jù)庫(kù)物資總庫(kù)存數(shù)據(jù)庫(kù) 圖4 計(jì)劃匯總模型與數(shù)據(jù)庫(kù)的關(guān)系4.2制定物資的分配方案物資分配方案是利

14、用物資分配模型來完成的,該分配模型是通過一系列公式實(shí)現(xiàn)。比較分配情況對(duì)同一物資Wj計(jì)算總可供量S(各倉(cāng)庫(kù)可供量之和)與總申請(qǐng)量Q(各單位申請(qǐng)量之和)的大小。物資分配方法總可供量大于等于總申請(qǐng)量SQ完全滿足各單位的申請(qǐng)數(shù)量,即各單位的分配數(shù)量FB(Dj)等于他的申請(qǐng)量。FB(Dj)= SQ(Dj) (2.1)總可供量小于總申請(qǐng)量SQ這里有2種處理方法:按申請(qǐng)比例削減 FB(Dj)= SQ(Dj)*S/Q (2.2)按優(yōu)先類別分配各單位按需求物資的需求程度有一個(gè)優(yōu)先類別 該模型是一個(gè)數(shù)學(xué)模型。模型和數(shù)據(jù)庫(kù)之間的關(guān)系如圖:物資總申請(qǐng)數(shù)據(jù)庫(kù)物資總庫(kù)存數(shù)據(jù)庫(kù)物資分配模型物資分配數(shù)據(jù)庫(kù) 圖3 物資分配模型

15、與數(shù)據(jù)庫(kù)的關(guān)系 其中物資分配數(shù)據(jù)庫(kù)中每條記錄表示每種物資分配給各單位的具體數(shù)量。 4.3物資調(diào)撥預(yù)處理在制定物資分配方案中已經(jīng)確定了每種物資給各接收單位的分配數(shù)量。具體由哪個(gè)倉(cāng)庫(kù)調(diào)撥多少物資到哪個(gè)單位去,就有運(yùn)輸問題的線性規(guī)劃來解決。但決定哪幾個(gè)倉(cāng)庫(kù),哪幾個(gè)接收單位之間實(shí)現(xiàn)調(diào)撥供應(yīng)是需要進(jìn)行預(yù)處理的。 每種物資的調(diào)運(yùn)中,參加調(diào)運(yùn)的倉(cāng)庫(kù)和接收單位都是不一樣的,是隨機(jī)出現(xiàn)的。參加調(diào)運(yùn)的倉(cāng)庫(kù)是由該倉(cāng)庫(kù)提供某物資的可供量是否大于零來決定。參加調(diào)用接收單位要看他接收某物資的分配數(shù)大于零來決定。每個(gè)倉(cāng)庫(kù)到所接收單位的路程,存入一個(gè)距離數(shù)據(jù)庫(kù)中。對(duì)每一種物資,由于參加調(diào)運(yùn)的倉(cāng)庫(kù)和單位不同,要形成參加調(diào)運(yùn)的實(shí)

16、際距離矩陣,這就要對(duì)每個(gè)距離記錄進(jìn)行挑選,挑選后形成小的實(shí)際距離矩陣,再形成好實(shí)際調(diào)撥矩陣后,才可以進(jìn)行運(yùn)輸問題的線性規(guī)劃運(yùn)算,計(jì)算出有哪個(gè)倉(cāng)庫(kù)運(yùn)多少物資給某個(gè)接收單位。這個(gè)物資調(diào)運(yùn)預(yù)處理是一個(gè)數(shù)據(jù)處理模型,用數(shù)據(jù)庫(kù)中投影操作來完成。該模型完成了物資調(diào)用預(yù)處理后,接著就可以進(jìn)行物資運(yùn)輸調(diào)撥了,當(dāng)求出具體解后,由調(diào)撥方案的解回到原數(shù)據(jù)庫(kù)中的位置,由數(shù)據(jù)庫(kù)反投影操作來完成。該模型和數(shù)據(jù)庫(kù)之間的關(guān)系如圖:某物資實(shí)際距離矩陣物資分配數(shù)據(jù)庫(kù)距離數(shù)據(jù)庫(kù)物資調(diào)撥預(yù)處理模型 圖6 物資調(diào)撥預(yù)處理模型和數(shù)據(jù)庫(kù)的關(guān)系4.4制定物資運(yùn)輸方案 利用運(yùn)輸問題數(shù)學(xué)模型的具體求解方法,制定各物資的運(yùn)輸方案。該模型和數(shù)據(jù)庫(kù)之

17、間的關(guān)系:物資調(diào)撥數(shù)據(jù)庫(kù)物資分配數(shù)據(jù)庫(kù)實(shí)際距離矩陣運(yùn)輸問題模型 圖7 運(yùn)輸問題模型和數(shù)據(jù)庫(kù)的關(guān)系運(yùn)輸問題的計(jì)算機(jī)算法實(shí)現(xiàn):物資調(diào)撥數(shù)據(jù)庫(kù)中每條記錄表示有各倉(cāng)庫(kù)運(yùn)給各單位的具體數(shù)量。從距離表中選出能夠提供A資源的倉(cāng)庫(kù),若S=Q即庫(kù)存量=申請(qǐng)量,我們采用產(chǎn)銷不平衡的沃爾格運(yùn)輸方法;若S60,單位為分鐘)。訓(xùn)練集見表:實(shí)例 屬性目標(biāo)WillWaitOthersWCondWEndConsPriceRainResWEstX1YesNoNoSomeEXNoYes0-10YesX2YesNoNoFullCHNoNo30-60NoX3NoYesNoSomeCHNoNo0-10YesX4YesNoYesFull

18、CHYesNo10-30YesX5YesNoYesFullEXNoYes60NoX6NoYesNoSomeMIDYesYes0-10YesX7NoYesNoNoneCHYesNo0-10NoX8NoNoNoSomeMIDYesYes0-10YesX9NoYesYesFullCHYesNo60NoX10YesYesYesFullEXNoYes10-30NoX11NoNoNoNoneCHNoNo0-10NoX12YesYesYesFullCHNoNo30-60Yes要求:建立BP神經(jīng)網(wǎng)絡(luò)模型,并進(jìn)行容錯(cuò)性分析。(25分)解:通過對(duì)訓(xùn)練集進(jìn)行訓(xùn)練建立神經(jīng)網(wǎng)絡(luò)模型,首先對(duì)訓(xùn)練集輸入數(shù)字化,之后建立神經(jīng)

19、網(wǎng)絡(luò),設(shè)置輸入輸出向量,網(wǎng)絡(luò)層數(shù)及網(wǎng)絡(luò)各層權(quán)值閾值。然后進(jìn)行訓(xùn)練得到神將網(wǎng)絡(luò)模型。最后進(jìn)行容錯(cuò)分析,可以訓(xùn)練原訓(xùn)練集的數(shù)據(jù),分析網(wǎng)絡(luò)的準(zhǔn)確性,均方差的誤差值等,也可以對(duì)原訓(xùn)練集數(shù)據(jù)稍作修改,看是否會(huì)影響所作的決策。對(duì)訓(xùn)練集數(shù)據(jù)修改后如下表,用來進(jìn)行容錯(cuò)分析。實(shí)例 屬性目標(biāo)WillWaitOthersWCondWEndConsPriceRainResWEstX11000-1010.51X21001100-0.50X301001000.51X4101111001X51011-101-10X601000110.51X7010-11100.50X800000110.51X90111110-10X101

20、111-10100X11000-11000.50X12111-1100-0.511:等待 0:不等在MATLAB中運(yùn)行如下代碼P=1 0 0 0 -1 0 1 1; 1 0 0 -1 1 0 0 0;0 1 0 0 1 0 0 1; 1 0 1 -1 1 1 0 0.5;1 0 1 -1 -1 0 1 -1; 0 1 0 0 0 1 1 1;0 1 0 1 1 1 0 1; 0 0 0 0 0 1 1 1;0 1 1 -1 1 1 0 -1; 1 1 1 -1 -1 0 1 0.5;0 0 0 1 1 0 0 1; 1 1 1 -1 1 0 0 0; T=1 0 1 1 0 1 0 1 0 0

21、 0 1; pause;運(yùn)行結(jié)果 net=newff(minmax(P),3,1,tansig,purelin,traingdm)Warning: NEWFF used in an obsolete way. In nntobsu at 18 In newff at 105 See help for NEWFF to update calls to the new argument list. net = Neural Network object: architecture: numInputs: 1 numLayers: 2 biasConnect: 1; 1 inputConnect:

22、1; 0 layerConnect: 0 0; 1 0 outputConnect: 0 1 numOutputs: 1 (read-only) numInputDelays: 0 (read-only) numLayerDelays: 0 (read-only) subobject structures: inputs: 1x1 cell of inputs layers: 2x1 cell of layers outputs: 1x2 cell containing 1 output biases: 2x1 cell containing 2 biases inputWeights: 2x

23、1 cell containing 1 input weight layerWeights: 2x2 cell containing 1 layer weight functions: adaptFcn: trains divideFcn: (none) gradientFcn: calcgrad initFcn: initlay performFcn: mse trainFcn: traingdm parameters: adaptParam: .passes divideParam: (none) gradientParam: (none) initParam: (none) perfor

24、mParam: (none) trainParam: .epochs, .goal, .lr, .max_fail, .mc, .min_grad, .show, .time weight and bias values: IW: 2x1 cell containing 1 input weight matrix LW: 2x2 cell containing 1 layer weight matrix b: 2x1 cell containing 2 bias vectors other: userdata: (user information) inputWeights=net.IW1,1

25、inputWeights = 0.9333 1.2258 -0.6569 0.6893 0.6779 -1.0620 0.8665 -0.6884 1.6281 0.5310 0.1881 -0.6869 -0.0293 -0.3139 1.8436 0.7004 -1.0904 -1.1765 1.3374 0.6878 0.4389 1.2153 0.4553 0.6343 inputbias=net.b1inputbias = -2.2595 -1.9384 -1.9766 layerWeights=net.LW2,1layerWeights = 0.3575 0.5155 0.4863

26、 layerbias=net.b2layerbias = -0.2155 pause; net.trainParam.show = 50; net.trainParam.lr = 0.05; net.trainParam.mc = 0.9; net.trainParam.epochs = 1000; net.trainParam.goal = 1e-3; pause; net,tr=train(net,P,T);TRAINGDM-calcgrad, Epoch 0/1000, MSE 1.84616/0.001, Gradient 4.0328/1e-010TRAINGDM-calcgrad,

27、 Epoch 50/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 100/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 150/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 200/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 250/1000, MSE 0./0.001, Gr

28、adient 0./1e-010TRAINGDM-calcgrad, Epoch 300/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 350/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 400/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 450/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM-calcgra

29、d, Epoch 500/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 550/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 600/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 650/1000, MSE 0.04611/0.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 700/1000, MSE 0./0

30、.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 750/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 800/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 850/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 900/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM

31、-calcgrad, Epoch 950/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM-calcgrad, Epoch 1000/1000, MSE 0./0.001, Gradient 0./1e-010TRAINGDM, Maximum epoch reached, performance goal was not met. pause A = sim(net,P)A = Columns 1 through 11 0.7708 0.0446 1.0086 1.0508 -0.0921 1.1178 0.0647 0.9401 -0.0444

32、0.2307 -0.0433 Column 12 0.9434 E = T - AE = Columns 1 through 11 0.2292 -0.0446 -0.0086 -0.0508 0.0921 -0.1178 -0.0647 0.0599 0.0444 -0.2307 0.0433 Column 12 0.0566 MSE=mse(E)MSE = 0.0123 test=1 0 1 0 -1 0 1 0; 1 0 0 -1 1 0 1 0;0 1 0 1 1 0 0 1; 1 0 1 -1 0 1 0 0.5;1 1 1 -1 -1 0 1 -1; 0 1 1 0 1 1 1 1

33、;0 1 0 1 1 0 0 1; 0 0 0 0 0 1 0 1;1 1 1 0 1 1 0 -1; 1 1 1 -1 -1 0 1 0.5;0 1 0 1 1 0 0 1; 1 1 1 0 1 0 0 0; A1 = sim(net,test)A1 = Columns 1 through 11 0.6638 1.1255 0.8135 1.0079 0.1281 1.1872 0.8135 -0.0810 0.6832 0.2307 0.8135 Column 12 1.5866 E1 = T - A1E1 = Columns 1 through 11 0.3362 -1.1255 0.1

34、865 -0.0079 -0.1281 -0.1872 -0.8135 1.0810 -0.6832 -0.2307 -0.8135 Column 12 -0.5866 MSE=mse(E1)MSE = 0.4018 pause echo off得到如下的曲線圖:對(duì)運(yùn)行結(jié)果進(jìn)行容錯(cuò)性分析:實(shí)例 輸入輸出WillWait(1)輸出WillWait(0)結(jié)果OthsWConWEnConPriceRaiResWEstX11100-101 10.96331.2952等(1)X21011100 -10.01830.5994不一定X30101100 11.01121.9679等(1)X41001110 0

35、0.98260.5656等(1)X51111-101 -2-0.05600.2541不等(0)X60110001 10.9926-0.4782不一定X7011-1010 10.0111-0.9876不等(0)X80110011 11.0085-0.9217不一定X90000110 -20.00010.8146不一定X101100101 00.07990.1198不等(0)X11111-1100 1-0.0092-0.9840不等(0)X121100000 -10.99591.0300等(1)編制旅行商路徑優(yōu)化問題的遺傳算法程序,并計(jì)算一個(gè)實(shí)例。(25分) 一、旅行商問題概述旅行商問題(Trav

36、eling Saleman Problem,TSP)又譯為旅行推銷員問題、貨郎擔(dān)問題,簡(jiǎn)稱為TSP 問題,是最基本的路線問題,該問題是在尋求單一旅行者由起點(diǎn)出發(fā),通過所有給定的需求點(diǎn)之后,最后再回到原點(diǎn)的最小路徑成本。TSP 問題最簡(jiǎn)單的求解方法是枚舉法。它的解是多維的、多局部極值的、趨于無窮大的復(fù)雜解的空間,搜索空間是n 個(gè)點(diǎn)的所有排列的集合,大小為n-1。可以采用遺傳算法來搜索解空間,群體搜索易于進(jìn)行并行化處理,它并不是盲目窮舉,而是啟發(fā)式搜索,由于采用了遺傳、變異、突變,豐富了種群的基因,優(yōu)化了解空間。遺傳算法是建立在最優(yōu)解與較優(yōu)解的差別小的基礎(chǔ)上的,也可以說是建立在父母漂亮,小孩很有可

37、能也漂亮的理論基礎(chǔ)上的。遺傳算法得出的很有可能是局部最優(yōu)解,而不是全局最優(yōu)解。(百度)二、遺傳算法(GA)遺傳算法(Genetic Algorithm)是模擬生物進(jìn)化論的自然選擇和遺傳學(xué)機(jī)理的生物進(jìn)化過程的計(jì)算模型,是一種通過模擬自然進(jìn)化過程搜索最優(yōu)解的方法,它最初由美國(guó)Michigan大學(xué)J.Holland教授于1975年首先提出來的,并出版了頗有影響的專著Adaptation in Natural and Artificial Systems,GA這個(gè)名稱才逐漸為人所知,J.Holland教授所提出的GA通常為簡(jiǎn)單遺傳算法(SGA)。三、問題描述假設(shè)有一個(gè)旅行商人要拜訪n個(gè)城市,他必須選擇

38、所要走的路徑,路徑的限制是每個(gè)城市只能拜訪一次,而且最后要回到原來出發(fā)的城市。路徑的選擇目標(biāo)是要求得的路徑路程為所有路徑之中的最小值。TSP問題是一個(gè)組合優(yōu)化問題。該問題可以被證明具有NPC計(jì)算復(fù)雜性。因此,任何能使該問題的求解得以簡(jiǎn)化的方法,都將受到高度的評(píng)價(jià)和關(guān)注。 四、問題分析 TSP問題就是尋找一條最短的遍歷n 個(gè)城市的最短路徑, 即搜索自然子集W= 1 ,2 , , n ( W的元素表示對(duì)n 個(gè)城市的編號(hào)) 的一個(gè)排列( W) = V1 , V2 , , Vn , 使len = d ( Vi , Vi+1) + d ( V1 , Vn)取最小值, 式中的d ( Vi , Vi+1)

39、表示城市Vi 到城市Vi + 1的距離. 遺傳算法是具有“生成+檢測(cè)”的迭代過程的搜索算法。它的基本處理流程如圖1所示。由此流程圖可見,遺傳算法是一種群體型操作,該操作以群體中的所有個(gè)體為對(duì)象。選擇(Selection)、交叉(Crossover)和變異(Mutation)是遺傳算法的3個(gè)主要操作算子,它們構(gòu)成了所謂的遺傳操作(genetic operation),使遺傳算法具有了其它傳統(tǒng)方法所沒有的特性。遺傳算子包含如下6個(gè)基本因素:參數(shù)編碼:由于遺傳算法不能直接處理解空間的解數(shù)據(jù),因此必須通過編碼將它們表示成遺傳空間的基因型串結(jié)構(gòu)數(shù)據(jù)。生成初始群體:由于遺傳算法的群體型操作需要,所以必須為

40、遺傳操作準(zhǔn)備一個(gè)由若干初始解組成的初始群體。初始群體的每個(gè)個(gè)體都是通過隨機(jī)方法產(chǎn)生。適應(yīng)度評(píng)估檢測(cè):遺傳算法在搜索進(jìn)化過程中一般不需要其他外部信息,僅用適應(yīng)度(fitness)值來評(píng)估個(gè)體或解的優(yōu)劣,并作為以后遺傳操作的依據(jù)。選擇(selection):選擇或復(fù)制操作是為了從當(dāng)前群體中選出優(yōu)良的個(gè)體, 使它們有機(jī)會(huì)作為父代為下一代繁殖子孫。個(gè)體適應(yīng)度越高,其被選擇的機(jī)會(huì)就越多。此處采用與適用度成比例的概率方法進(jìn)行選擇。具體地說,就是首先計(jì)算群體中所有個(gè)體適應(yīng)度的總和(),再計(jì)算每個(gè)個(gè)體的適應(yīng)度所占的比例(),并以此作為相應(yīng)的選擇概率。交叉操作:交叉操作是遺傳算法中最主要的遺傳操作。簡(jiǎn)單的交叉(

41、即一點(diǎn)交叉)可分兩步進(jìn)行:首先對(duì)種群中個(gè)體進(jìn)行隨機(jī)配對(duì);其次,在配對(duì)個(gè)體中隨機(jī)設(shè)定交叉處,配對(duì)個(gè)體彼此交換部分信息。(6) 變異:變異操作是按位(bit)進(jìn)行的,即把某一位的內(nèi)容進(jìn)行變異。變異操作同樣也是隨機(jī)進(jìn)行的。一般而言,變異概率都取得較小。變異操作是十分微妙的遺傳操作,它需要和交叉操作配合使用,目的是挖掘群體中個(gè)體的多樣性,克服有可能限于局部解的弊病。這6個(gè)要素構(gòu)成了遺傳算法的核心內(nèi)容,其流程如圖1所示。圖1 遺傳算法的基本流程遺傳算法解題的基本步驟如下:Step1:參數(shù)設(shè)置及種群初始化;Step2:對(duì)不可行解進(jìn)行貪婪修復(fù);Step3:適應(yīng)度評(píng)價(jià);Step4:輪盤賭選擇;Step5:交叉

42、;Step6:變異;Step7:對(duì)不可行解進(jìn)行貪婪修復(fù);Step8:適應(yīng)度評(píng)價(jià);Step9:終止條件判斷,若未達(dá)到終止條件,則轉(zhuǎn)到Step4;Step10:輸出結(jié)果。五、運(yùn)行結(jié)果初始種群中的一個(gè)隨機(jī)值:Rlength = 8.1881e+004Rlength = 2.8217e+004迭代次數(shù)c 400迭代后結(jié)果Rlength = 2.8217e+00436個(gè)城市坐標(biāo)隨機(jī)化結(jié)果 遺傳算法求解結(jié)果六、結(jié)果分析由遺傳算法對(duì)以上求解可以看出,用遺傳算法來求解TSP問題是可行的。用遺傳算法求解時(shí),增加迭代次數(shù),可以得到更加優(yōu)良的結(jié)果,但是會(huì)需要更長(zhǎng)的時(shí)間,即一個(gè)優(yōu)良的結(jié)果往往是以時(shí)間為代價(jià)的,這種情況

43、要依據(jù)具體問題具體分析,平衡兩者在問題求解時(shí)的比重。另外,對(duì)選擇算法進(jìn)行優(yōu)化,會(huì)提高遺傳算法的性能,這些都需要在實(shí)踐中不斷積累和廣泛涉獵優(yōu)良算法。最后,遺傳算法得到的未必是最優(yōu)解,我們可以根據(jù)需要進(jìn)行多次求解,從而比較得出符合要求的結(jié)果。七、程序源代碼a=1304 2312;3639 1315;4177 2364;3712 1399;3488 1535;3326 1556;. 3238 1229;4196 1044;4312 790;2864 570;1927 1970;2562 1756;. 2788 1491;2381 1676;1332 695;3715 1678;3918 2179;4

44、061 2370;. 3780 2212;3676 2578;1537 2838;2745 2931;3429 1908;3507 2376;. 2788 1491;2381 1676;1332 695;3715 1678;3918 2179;4061 2370;. 3780 2212;3676 2578;1537 2838;2745 2931;3429 1908;3507 2376;. ;%a:假定的36個(gè)城市的坐標(biāo) n=100;%n:種群個(gè)數(shù)C=200;%C:停止代數(shù)m=2;%m:適配值淘汰加速指數(shù),不宜太大Pc=0.9;%Pc:交叉概率Pm=0.2;%Pm: 變異概率D=distance(a);%生成距離矩陣R,Rlength=GeneTSP(D,a,n,C,m,Pc,Pm);function R,Rlength=GeneTSP(D,a,n,C,m,Pc,Pm) N,NN=size(D); %(31*31) farm=zeros(n,N); %存儲(chǔ)種群 %隨機(jī)生成初始種群,隨機(jī)產(chǎn)生從1到N的N個(gè)初始值,例如, RANDPERM(6) ,可能結(jié)果為:2 4 5 6 1 3. for i=1:n farm(i,:)=randperm(N); end R=farm(1,:); %一個(gè)隨機(jī)解(個(gè)體) scatter(a(:,1),a(:,2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論