數學建模 匈牙利算法求解整數規劃基本原理與編程實現

投資問題(0-1規劃)

匈牙利算法求解0-1規劃問題
在這里插入圖片描述
解答:
項目之間是互斥關系,所以使用x1+x2+x3=1;
項目5是以項目1為先驗條件,所以x5<=x1,意味著x1=1時,x5=1或0 ,但x1=0時,x5=0
在這里插入圖片描述

案例- 互斥約束問題

1)當兩個約束條件是互斥時,新建立一個約束條件y(0-1)
2)如果M取無窮大的數,此時就能讓其中一項約束失去作用
3)這道題是說存在一個約束 4x1+5x2<=200和另一個約束3x1+5x2<=180,這兩個約束互斥,所以引入一個新的約束M
在這里插入圖片描述
互斥約束的推廣
p-q=yi相加:在p個約束條件中選擇q個
在這里插入圖片描述

案例-固定費用問題

在這里插入圖片描述
解答:
可變成本就是成本,利潤=售價-可變成本
在這里插入圖片描述
在這里插入圖片描述
最終:
這里還存在一個問題:如果不租用每個產品對應的生產線,則不能夠生產相應的產品
所以要引入M1(無窮大的數),檢驗x1,x2,x3是否有生產
在這里插入圖片描述

案例-指派問題

在這里插入圖片描述
解答:
1)因為每一個人可以選擇四項工作中的一個,共有四個人,則一共有4*4=16項
所以,要使用二維數組的樣式xij來表示第i個人是否做第j項工作
在這里插入圖片描述

指派問題標準形式

在這里插入圖片描述
數學模型
在這里插入圖片描述

非標準形式的指派問題

增加新的約束或新的約束條件
1)
最大化指派問題:不是成本和時間最小化指派問題,而是利潤最大化
使用最大元素-所有的值=新的指派系數
2)
人數和工作數不等,代價為0,xii的值為0
3)
一個人可做多件工作,幾個相同的人,不做任何限制
4)
某工作一定不能由某人做,若x13=0,則設x13<=0
在這里插入圖片描述

指派問題的匈牙利解法的一般步驟

1)系數矩陣:每個人做每項工作所需要付出的代價
2)aij->bij
變為所有的行和所有的列只有一個1,其余元素全為0,意味著整個矩陣的秩=4
第一步:
在這里插入圖片描述
第二步:
1)獨立0元素:行和列都不相等的0元素
2)
只有一個0元素的行,劃掉所在列
只有一個0元素的列,劃掉所在行
在這里插入圖片描述
1)
如果還有0元素沒有畫圈,就找到最少的0元素的行或列
2)
畫圈數目=矩陣的階,指派問題的最優解已找到

在這里插入圖片描述
第三步:
在這里插入圖片描述
直線數l=畫圈的數目m
在這里插入圖片描述
第四步:
行減去min,列加上min,之后再回到第二步,去重復過程
在這里插入圖片描述

匈牙利解法的實例1

在這里插入圖片描述

解答:
第一步
在這里插入圖片描述
第二步:
記住反復做
在這里插入圖片描述
最后:
輸出的矩陣:圈為1,其余為0
最優解=1所對應的原始矩陣元素相加
在這里插入圖片描述

匈牙利解法的實例2

在這里插入圖片描述

解答:
第一步和第二步:
在這里插入圖片描述

第三步:

在這里插入圖片描述

第四步:
加減最小得到新的指派矩陣,再重復第二步
在這里插入圖片描述
重復第二步:
最優解=2+4+1+8=15
在這里插入圖片描述

指派問題的matlab程序

1)向量方便后期計算
2)for循環,使所有的行取值為1,所有的列取值為1
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/446503.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446503.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446503.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ubuntu通過可視化界面配置 查找IP地址不存在的解決辦法

命令行用ifconfig eno0 up&#xff0c;啟用網卡&#xff0c;沒有問題&#xff0c;硬件ok&#xff0c;但是配置里面還是找不到。之前修改了 /etc/network/interfaces&#xff0c;去掉配置。由于圖形界面使用的是 network-manager&#xff0c;所以需要修改重啟sudo service netwo…

數學建模 非線性規劃原理的應用與編程實現

非線性規劃模型NP 包含非線性函數:不是直線而是曲線、曲面、或不確定的屬性,叫非線性。 如:x^2 線性函數:一次函數,axb 列1-投資決策問題 解答: 設置決策變量: 1)投資某個項目達到收益最高,使用比值法(更直觀) 收益/投資花費 取值范圍 1)*非線性規劃中常用 限制xi0或1(在編…

C++ STL list添加(插入)元素方法詳解

C STL list添加&#xff08;插入&#xff09;元素方法詳解主要內容主要內容 參考鏈接

數學建模1 賽前準備 賽題選擇 查找文獻

了解國賽 生成了MD5碼之后就不能再碰文件&#xff0c;打開都不行 軟件安裝 其他 ABC賽題特點 一般選擇B,C題 賽題選擇 1.排除背景都看不懂的題 定題 1.少數服從多數 2.選擇資料多的題 搜索技巧 1.雙引號–“CT參數標定”&#xff08;內容或標題一致&#xff09; 2…

劍指offer 第一章 面試的流程

面試的流程 面試的三種形式 電話面試&#xff1a;形象化語言講解細節&#xff1b;如果沒有聽清楚和聽懂問題&#xff0c;不要不懂裝懂&#xff0c;答非所問共享桌面&#xff0c;遠程面試&#xff1a;編程習慣和調試能力。1&#xff0c;思考清楚再開始編碼&#xff0c;先想思路…

數學建模2 數據預處理

注意 題目給出的數據不能直接使用&#xff0c;要對數據進行異常處理 缺失值 1.缺失值太多就要把該項指標刪除&#xff08;40%相當大&#xff09; 2.處理&#xff1a;對精度不高 定量數據&#xff0c;使用均值 定性數據&#xff0c;使用眾數 3.對數據精度有要求 但對導數沒有…

n個整數,其中有兩個數是重復的,要求找出這兩個重復的整數

n個整數&#xff0c;其中有兩個數是重復的&#xff0c;要求找出這兩個重復的整數方法一方法二方法三空間復雜度的計算常量空間線性空間二維空間遞歸空間方法一 使用set集合 將每一個元素放到set集合中&#xff0c;加入的時候判斷集合中是否存在此元素&#xff0c;如果if判斷找…

數學建模3 論文排版注意點

注意事項 1&#xff09;論文標題不超過三級 5 5.1 5.1.1 2&#xff09;不要留有大片空白 3&#xff09;表格&#xff1a;三線表&#xff0c;只有三條橫線&#xff0c;沒有豎線&#xff0c;表的標題放在表的上方 4&#xff09;圖名放在圖的下方&#xff0c;圖1 xxx 5)重要…

修改ubuntu的IP地址,靜態IP地址

師姐&#xff0c;配置ip地址 當時你給服務器安裝系統&#xff0c;然后配置IP地址 sudo ifconfig eth0 172.27.100.110 netmask 255.255.0.0

數學建模4 論文寫作排版和技巧

文字 標題一&#xff1a;四號黑體 標題二、三&#xff1a;小四號黑體 正文&#xff1a;宋體小四 行距1.5 標題前后空0.5行 英文和數字使用Times New Roman 小四&#xff08;包括表格中的內 表頭在表格上方&#xff0c;需寫成“表1 什么什么表”黑體小五加粗、居中 圖名在圖下…

哈希表和有序表的簡單介紹

哈希表的簡單介紹 哈希表是一種集合結構 包含map和set如果只有key&#xff0c;沒有伴隨數據value&#xff0c;可以使用HashSet結構(C stl set)如果擁有key&#xff0c;擁有伴隨數據value&#xff0c;可以使用HashMap結構(C stl map)有無伴隨數據是Hashmap和Hashset的唯一區別…

中科大 計算機網絡1 課程主要內容大概介紹

B站課程 課程主要內容 1&#xff09; 支撐Web應用的http協議 支撐FTP應用的ftp協議 電子郵件發送協議主要是SMTP,收件協議主要是POP3和IMAP 傳輸層協議&#xff1a;UDP&#xff08;用戶數據包協議&#xff09;&#xff0c;TCP&#xff08;傳輸控制協議&#xff09; 2&#x…

算法題 如何找到數組中重復的數字

面試題3 數組中重復的數字 題 目 &#xff1a;找出數組中重復的數字。在一個長度為n的數組里的所有數字都在0 ~ n-1的范圍內。數組中某些數字是重復的&#xff0c;但不知道有幾個數字重復了&#xff0c;也不知道每個數字重復了幾次。請找出數組中任意一個重復的數字。例如&…

數學建模5 代碼論文降重 Excel表處理數據

代碼降重 1&#xff09;在代碼中加入自己的注釋 2&#xff09;替換變量名&#xff0c;a->jude 3&#xff09;代碼中英文使用很小的字母&#xff0c;再顏色透明化&#xff08;慎用&#xff09; 文章降重 1&#xff09;模型介紹&#xff0c;優缺點等網上容易查到的內容自己…

C++ Map簡單介紹 ,比如添加元素、刪除元素和打印元素

介紹 map是一種鍵值對容器&#xff0c;第一個數值為關鍵字&#xff08;key&#xff09;&#xff0c;第二個數值為該元素對應的出現的次數。如果是map&#xff0c;key只會出現一次&#xff0c;如果是unordered_map&#xff0c;無此限制。此外&#xff0c;map會對元素進行排序&a…

Python學習1 基礎語法 數據類型 計算機基礎

Python的重要性 python就業方向 Python的歷史 python創造于1989年&#xff0c;荷蘭人吉多.范羅蘇姆 現在是Python3版本 09 Python的特點 1&#xff09;跨平臺 2&#xff09;解釋型語言 3&#xff09;交互式 4&#xff09;面向對象&#xff1a;一切皆對象 5&#xff09;具有一…

算法考題 替換空格

參考鏈接 letcode官網題目地址 題目要求&#xff1a; 請實現一個函數&#xff0c;把字符串 s 中的每個空格替換成"%20"。示例 1&#xff1a; 輸入&#xff1a;s "We are happy." 輸出&#xff1a;"We%20are%20happy." 來源&#xff1a;力扣&a…

Python學習2 條件判斷語句if,循環語句for while

順序&#xff0c;分支&#xff0c;循環結構 條件判斷語句if 1&#xff09;if…else… 2) if…elif…else 注意&#xff1a; 1&#xff09;python中不支持switch…case語句 2&#xff09;注意縮進&#xff01; 3&#xff09;區間范圍內允許連續比較&#xff1a; if 1<2<…

使用VS2019創建項目,添加文件和庫地址

1&#xff0c;創建項目的類型很重要&#xff0c;fisherman服務器密碼機使用C語言進行開發&#xff0c;只可以使用控制臺應用 將需要的頭文件拷貝到新建的工程里面 然后&#xff0c;打開解決方案資源管理器&#xff0c;點擊添加&#xff0c;添加現有項&#xff0c;選中拷貝的頭…

java -web html5學習1

基礎標簽 <!--html5聲明--> <!DOCTYPE html> <!--html標簽--> <html lang"en"> <!--文檔頭--> <head> <!--告知瀏覽器此頁面屬于什么字符編碼格式,--><meta charset"UTF-8"> <!-- 用于標識當前網頁的…