[問題] 想請教這數學問題如何用數學邏輯寫出來

看板C_and_CPP作者 (casper)時間12年前 (2011/09/16 10:00), 編輯推噓9(9038)
留言47則, 9人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) dev c++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 想請問板上各位高手,因為我想寫一個程式去求解線性規劃的解, 類似LINGO那種 功能, 可是我goole了半天, 好像都沒有它是用什麼解法去算的, 而它的操作手冊 還真的看不是很懂, 所以我想說是否有方法可以直接用C++呼叫LINGO後, 在回傳最佳 解回C++程式, 經估狗大神查詢過後, 這方面的資料非常稀少, 而且好像都是用 VC C++ 6.0去示範, 小弟我只會用 DEV C++, 所以看不是很懂, 不知道版友是否 有這方面的知識可以幫助小弟, 或是有您寶貴意見可以給予在下, 小弟感激不盡,因 為在下想這個問題想了很久了XD... 希望各位可以伸出您寶貴的援手, 在此先謝謝各位抽空閱讀此篇文章, 由衷感謝! P.S 小弟在底下再補充一下我想求解的(BLP)類似題目: min -x-3*y1+2*y2 min -y1 -y1<=0-------(1) y1<=4-------(2) -2*x+y1+4*y2<=16------(3) 8*x+3*y1-2*y2<=48-------(4) -2*x+y1-3*y2<=-12--------(5) 0 <= x <= 8 ----------(6) 0 <= y1,y2 <=4------(7) 不知道有什麼想法可以使每次"先"產生X的隨機亂數, 然後在根據X值帶入限制 式中, 在隨機求出y1以及y2的隨機亂數產生範圍以滿足限制式, 此問題常會掉入 無窮迴圈...例如:當X=7時, 代入(4)以後可以得到: 3*y1-2*y2 < =-8 能滿足這條件只有當 y1 = 0, y2=4才會有解, 因此每次 當我用do-while亂數產生範圍(7)去跑解的時候, 常會掉入迴圈,真不知道該如何是好, 請問各位這問題是否有亂數方法可以讓它可以產生合理解嗎? 如果有發言不當或是耍笨之處, 還望請各位海涵. -- ◤ ◥ ◢ ◣ 傑米,炸掉它吧。 ⊙▁⊙─ ─⊙▂⊙ 碰到問題,用C4就對了! ╰ ∕皿﹨ ◥皿◤ ╯ ◥█◤◢ ◥ ︶◤ Adam Savage ◤ ︶ ◥◤ ﹨▼∕◥ James Hyneman MYTHBUSTERS ◥ ◤\◥ by dajidali -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.203.23 ※ 編輯: wajolinhigh 來自: 140.114.203.23 (09/16 10:56)

09/16 12:02, , 1F
為何要這樣搞?用 c 叫 lingo 真的不好搞耶
09/16 12:02, 1F

09/16 12:03, , 2F
oh 不好意思,我誤解你的意思了.
09/16 12:03, 2F

09/16 12:14, , 3F
這問題並不笨,你該先補充的是,是不是整數規劃,在線性規
09/16 12:14, 3F

09/16 12:14, , 4F
為什麼要用亂數去產生X?
09/16 12:14, 4F

09/16 12:15, , 5F
劃裡,完全整數規劃遠比 半整數/非整數規劃來得難多了
09/16 12:15, 5F

09/16 12:15, , 6F
我猜他原意是要用ga/pso,和lingo產生之解做比較之類的.
09/16 12:15, 6F

09/16 12:15, , 7F
(1),(2),(6),(7) 四條限制式, 可以先定出x,y1,y2的值
09/16 12:15, 7F

09/16 12:16, , 8F
域範圍.
09/16 12:16, 8F

09/16 12:17, , 9F
然後,你要找整數解還是小數點下幾位的解,去切取樣值.
09/16 12:17, 9F

09/16 12:18, , 10F
然後,可以用暴力法試過所有(x,y1,y2)的組合,或者用線
09/16 12:18, 10F

09/16 12:18, , 11F
性規劃求解的方式去找解.
09/16 12:18, 11F

09/16 12:20, , 12F
用暴力法很不智,速度非常慢.一般線性規劃(非整數)是用
09/16 12:20, 12F

09/16 12:22, , 13F
單形法、大M法,裡面還有分特殊解問題,這比暴力解快多.
09/16 12:22, 13F

09/16 12:23, , 14F
不論哪種方式,都以矩陣模式下去算,且整數規劃上並不好
09/16 12:23, 14F

09/16 12:23, , 15F
處理.線性規劃部份是真的可以出一本書。
09/16 12:23, 15F

09/16 12:25, , 16F
在 can do 之後, 再來講方法的智與不智.
09/16 12:25, 16F

09/16 12:26, , 17F
嗯,抱歉.
09/16 12:26, 17F

09/16 12:27, , 18F
有些東西是過程, 試了之後才知道怎麼用智的方法走下去
09/16 12:27, 18F

09/16 12:32, , 19F
聯立方程式的化簡, 可參考線性代數裡的
09/16 12:32, 19F

09/16 12:32, , 20F
Gauss-Jordan Elimination.
09/16 12:32, 20F

09/16 12:32, , 21F
另外, 作業研究的書, 也會提到 simplex method.
09/16 12:32, 21F

09/16 12:38, , 22F
不知道你有沒有修過作業研究,不過我也覺得應該用作研的角度
09/16 12:38, 22F

09/16 12:39, , 23F
來看這類題目,我同意上面tropical72的說法
09/16 12:39, 23F

09/16 12:49, , 24F
我是用c/c++,excel,lingo/lindo做過線性規劃,暴力破真
09/16 12:49, 24F

09/16 12:50, , 25F
的..嗯,我等二天還等不到結果..
09/16 12:50, 25F

09/16 12:50, , 26F
作業研究/管理數學/I2A/(好一點的)數值分析 都會有.
09/16 12:50, 26F

09/16 12:53, , 27F
你看看要不要問數學版,這方面的快速演算法.
09/16 12:53, 27F

09/16 12:54, , 28F
有了相關的概念,比較容易撰寫出來.不過程式記得讓大家
09/16 12:54, 28F

09/16 12:54, , 29F
欣賞一下喔>0<
09/16 12:54, 29F

09/16 13:04, , 30F
亂數問題sample code http://codepad.org/xwENjMI3
09/16 13:04, 30F

09/16 13:16, , 31F
感謝各位高手,正如tro大說的我是用一個叫做SSO的演算
09/16 13:16, 31F

09/16 13:16, , 32F
法去求解類似此類問題,因為這個題目只有y1跟y2,所以
09/16 13:16, 32F

09/16 13:17, , 33F
可能不用演算法好解很多, 但是如果當y1..到y50的話,
09/16 13:17, 33F

09/16 13:18, , 34F
好像只能靠電腦這樣run了..因為這我老闆好像也沒寫出
09/16 13:18, 34F

09/16 13:20, , 35F
像這種快速求解方法,所以上來問版上先進們,這題不是
09/16 13:20, 35F

09/16 13:20, , 36F
整數規劃問題(各位大大考慮真詳細XD),不好意思疏漏了
09/16 13:20, 36F

09/16 18:42, , 37F
sso是用在電路設計之演算法,求優解應是精子移動pso
09/16 18:42, 37F

09/16 18:42, , 38F
要研究pso的話建議Voratas的paper一定要翻過,像上面說
09/16 18:42, 38F

09/16 18:43, , 39F
的亂數問題他的解決方式更讚!!pso世界級大師人物。
09/16 18:43, 39F

09/16 18:44, , 40F
!! Orz..修正18:42,是「粒」子移動pso,不是精子移動..
09/16 18:44, 40F

09/16 20:56, , 41F
剛剛看了精子移動下了一大跳 XD
09/16 20:56, 41F

09/16 23:02, , 42F
看到精子移動嚇一大跳+1000
09/16 23:02, 42F

09/17 00:00, , 43F
有簽名檔的潛力XD
09/17 00:00, 43F

09/17 01:34, , 44F
精子移動 lol
09/17 01:34, 44F

09/17 01:48, , 45F
Sperm Swarm Optimization... XDDDDDDDD
09/17 01:48, 45F

09/17 01:55, , 46F
繼 buffer 事件 #1DF2xlss 後的脫序.. XD
09/17 01:55, 46F

09/18 22:35, , 47F
XDDDDDDDDDDDD
09/18 22:35, 47F
文章代碼(AID): #1ESgsn0x (C_and_CPP)