原本自己看了一點運籌學,上課聽老師講了之後又有了一些體會:
1.線性的概念
都是一次項,沒有常數項
2.運籌學從**法到單純形法的過程:
1.**法解三維以內的問題(1947之前)
2.探知發現,所有的解都是在角點處,列舉法成為解決辦法
3.列舉個數cnm(組合數)太龐大,所以提出新的思路:
迭代法,要求每次下一次選擇的點比現在的點更優秀,最後在最優點停止
之後,單純形法按這種思路被研究出來,運籌學開始建立
3.限制條件的要求:
1.m=0,並且rank(a) = rank([a,b])
rank(a) = m(a是行滿秩)(否則會出現無用限制條件,使得矛盾或者只是滿足原條件)
eg 1,1,1 這個【a,b】矩陣,第三行的係數可以化簡為0,0,0,則不滿足行滿秩,同時可以發現
2,1,2 這個條件多餘
3,3,3
4.找到基本解的思路
ax = b ,求角點
令其中n-m個變數為0(非基變數),剩下m個變數和m個方程,如果有唯一解則說明
剩下的m個變數是一組基本解
5.單純形表
我發現老師給的單純形表和我自己看的形式不一樣,所以我們不能拘泥形式,抓住主要矛盾:
變數從非基變數中選進基變數的條件:看目標函式的係數,取max
變數從基變數中選出的條件:用b/上面選進變數的矩陣係數,負數和不存在的情況忽略,
正數中選最大的
6.關於單純形法的取值深入理解
7.大m法大m法是用在不全是<=的情況下的一種解決辦法:
我還是選擇手寫吧:
下面是第一次作業(未批改)改完之後我再貼上來
運籌學實驗 1
讀入資料 處理資料 新增鬆弛變數,人工變數 計算每一列的檢驗數 決定繼續迭代還是結束 1 設立的變數 vectora 約束條件係數 vectorb 約束條件右部數字 vectors 約束條件符號 vectortest 檢驗數 vectorxita int p 基 int line 0,row 0 最...