日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

数学建模 匈牙利算法求解整数规划基本原理与编程实现

發(fā)布時(shí)間:2023/12/13 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数学建模 匈牙利算法求解整数规划基本原理与编程实现 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

投資問(wèn)題(0-1規(guī)劃)

匈牙利算法求解0-1規(guī)劃問(wèn)題

解答:
項(xiàng)目之間是互斥關(guān)系,所以使用x1+x2+x3=1;
項(xiàng)目5是以項(xiàng)目1為先驗(yàn)條件,所以x5<=x1,意味著x1=1時(shí),x5=1或0 ,但x1=0時(shí),x5=0

案例- 互斥約束問(wèn)題

1)當(dāng)兩個(gè)約束條件是互斥時(shí),新建立一個(gè)約束條件y(0-1)
2)如果M取無(wú)窮大的數(shù),此時(shí)就能讓其中一項(xiàng)約束失去作用
3)這道題是說(shuō)存在一個(gè)約束 4x1+5x2<=200和另一個(gè)約束3x1+5x2<=180,這兩個(gè)約束互斥,所以引入一個(gè)新的約束M

互斥約束的推廣
p-q=yi相加:在p個(gè)約束條件中選擇q個(gè)

案例-固定費(fèi)用問(wèn)題


解答:
可變成本就是成本,利潤(rùn)=售價(jià)-可變成本


最終:
這里還存在一個(gè)問(wèn)題:如果不租用每個(gè)產(chǎn)品對(duì)應(yīng)的生產(chǎn)線,則不能夠生產(chǎn)相應(yīng)的產(chǎn)品
所以要引入M1(無(wú)窮大的數(shù)),檢驗(yàn)x1,x2,x3是否有生產(chǎn)

案例-指派問(wèn)題


解答:
1)因?yàn)槊恳粋€(gè)人可以選擇四項(xiàng)工作中的一個(gè),共有四個(gè)人,則一共有4*4=16項(xiàng)
所以,要使用二維數(shù)組的樣式xij來(lái)表示第i個(gè)人是否做第j項(xiàng)工作

指派問(wèn)題標(biāo)準(zhǔn)形式


數(shù)學(xué)模型

非標(biāo)準(zhǔn)形式的指派問(wèn)題

增加新的約束或新的約束條件
1)
最大化指派問(wèn)題:不是成本和時(shí)間最小化指派問(wèn)題,而是利潤(rùn)最大化
使用最大元素-所有的值=新的指派系數(shù)
2)
人數(shù)和工作數(shù)不等,代價(jià)為0,xii的值為0
3)
一個(gè)人可做多件工作,幾個(gè)相同的人,不做任何限制
4)
某工作一定不能由某人做,若x13=0,則設(shè)x13<=0

指派問(wèn)題的匈牙利解法的一般步驟

1)系數(shù)矩陣:每個(gè)人做每項(xiàng)工作所需要付出的代價(jià)
2)aij->bij
變?yōu)樗械男泻退械牧兄挥幸粋€(gè)1,其余元素全為0,意味著整個(gè)矩陣的秩=4
第一步:

第二步:
1)獨(dú)立0元素:行和列都不相等的0元素
2)
只有一個(gè)0元素的行,劃掉所在列
只有一個(gè)0元素的列,劃掉所在行

1)
如果還有0元素沒(méi)有畫(huà)圈,就找到最少的0元素的行或列
2)
畫(huà)圈數(shù)目=矩陣的階,指派問(wèn)題的最優(yōu)解已找到


第三步:

直線數(shù)l=畫(huà)圈的數(shù)目m

第四步:
行減去min,列加上min,之后再回到第二步,去重復(fù)過(guò)程

匈牙利解法的實(shí)例1

解答:
第一步

第二步:
記住反復(fù)做

最后:
輸出的矩陣:圈為1,其余為0
最優(yōu)解=1所對(duì)應(yīng)的原始矩陣元素相加

匈牙利解法的實(shí)例2

解答:
第一步和第二步:

第三步:

第四步:
加減最小得到新的指派矩陣,再重復(fù)第二步

重復(fù)第二步:
最優(yōu)解=2+4+1+8=15

指派問(wèn)題的matlab程序

1)向量方便后期計(jì)算
2)for循環(huán),使所有的行取值為1,所有的列取值為1

總結(jié)

以上是生活随笔為你收集整理的数学建模 匈牙利算法求解整数规划基本原理与编程实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。