實驗2:運輸問題
表1 產銷平衡表和單位運價表
銷地 運價 產地 | B1 B2 B3 B4 | 產量 |
A1 A2 A3 | 3 12 3 9 1 9 2 8 7 4 10 5 | 6 4 9 |
銷量 | 2 8 5 5 |
解:
一、建立模型
這是一道運輸問題。寫出目標函式,求運輸費用最小值。
在這之前,發現是產銷不平衡問題,增加一個虛擬產地。
先設A1產地運往B1銷地為:x11。以此類推,自變數設為:
A1產地:x11,x12,x13,x14。
A2產地:x21,x22,x23,x24。
A3產地:x31,x32,x33,x34。
A4產地:x41,x42,x43,x44。
所以,目標函式為:
max z = 3x11+12x12+3x13+9x14+x21+9x22+2x23+8x24+7x31+4x32+10x33+5x34+0x41+0x42+0x43+0x44約束條件為:
x11+x12+x13+x14=6
x21+x22+x23+x24=
x31+x32+x33+x34=9
x41+x42+x43+x44=1
x11+x21+x31+x41≤2
x12+x22+x32+x42≤8
x13+x23+x33+x43≤5
x14+x24+x34+x44≤5
xij≥0,i,j=1,2,3,4
二、計算過程
1. Excel
寫出單位運價表:
寫出運輸量表:
產量位置,輸入公式:=SUM(D11:G11)
把產地A1運往銷地B1,B2,B3,B4四個地方的運輸量加起來,以此類推,其他三個產地也是如此輸入公式。
銷量位置,輸入公式:=SUM(D11:D14)
把運往銷地B1的四個產地的運輸量加起來,以此類推,其他三個銷地也是如此輸入公式。
總費用位置,輸入公式:=SUMPRODUCT(D4:G7,D11:G14)
把單位運價表資料和運輸量資料都放進函式SUMPRODUCT中。
得出結果:
2. Lingo
model:
!4發點4收點運輸問題,增加了一個虛擬產地;
sets:
warehouses/wh1..wh4/: capacity;
vendors/v1..v4/: demand;
links(warehouses,vendors): cost, volume;
endsets
!目標函式;
[email protected](links: cost*volume);
!需求約束;
@for(vendors(J):
@sum(warehouses(I): volume(I,J))=demand(J));
!產量約束;
@for(warehouses(I):
@sum(vendors(J): volume(I,J))<=capacity(I));
!這裡是資料;
data:
capacity=6 4 9 1;
demand=2 8 5 5;
cost=3 12 3 9
1 9 2 8
7 4 10 5
0 0 0 0;
enddata
end
3. Matlab
F = [3 12 3 9 1 9 2 8 7 4 10 5 0 0 0 0];
m = [1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0
0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1];
n = [6 4 9 1 2 8 5 5];
M = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
[v,e] = linprog(F,[],[],m,n,M)
x = reshape(v,4,4);
x = x'
F表示單位運價。
m表示八個約束條件方程。
N表示產量和銷量。
M表示自變數都≥0。
reshape:先把v矩陣按列拆分,然後拼接成一個大小為4*4的向量。
相關推薦
實驗2:運輸問題
題目:某企業集團有 3個生產同類產品的工廠,生產的產品由 4個銷售中心出售,各工廠的生產量、各銷售中心的銷售量(假定單位均為噸)、各工廠到各銷售點的單位運價(元/噸)示於表1中。要求研究產品如何調運才能使總運費最小。表1 產銷平衡表和單位運價表銷地 運價 產
Mycat讀寫分離以及拆庫拆表綜合實驗2:部署配置mycat讀寫分離與拆庫拆表
mycat mysql 讀寫分離 拆庫拆表 部署 mycat mycat基於java運行,檢查java版本 [root@node119 ~]# java -version openjdk version "1.8.0_171" OpenJDK Runtime Environment (buil
《資料結構與演算法A》實驗2:棧的應用
題目: Description 根據棧的特點,實現十進位制到其他進位制之間的轉換,具體要求如下: (1)利用棧進行十進位制數與N進位制(如二進位制、八進位制、十六進位制)資料之間的轉換; (2)通過順序棧記錄進位制轉換的中間結果,該順序棧有一個指示棧頂的變數top,
2017級軟體工程專業《資料結構與演算法A》實驗2:棧的應用
題目: Description 根據棧的特點,實現十進位制到其他進位制之間的轉換,具體要求如下: (1)利用棧進行十進位制數與N進位制(如二進位制、八進位制、十六進位制)資料之間的轉換; (2)通過順序棧記錄進位制轉換的中間結果,該順序棧有一個指示棧頂的變數top,
【EDA】實驗2:利用74161計數器晶片設計M=12的計數器
一.實驗內容 1.利用74161計數器晶片設計一個M=12的計數器 2.利用Quartus軟體進行設計和模擬 3.觀察模擬波形 二.實驗步驟 本次實驗採用Quartus軟體進行,詳細步驟同實驗1類似,相關內容可以參考:【EDA】實驗1:拼接4-16譯碼器,以下
資料結構實驗2:C++實現單鏈表類
太簡單了,沒啥可說的,程式碼意義明白如話。 題目與要求: 實驗2 2.1 實驗目的 熟練掌握線
CSAPP實驗2:Bomb Lab筆記
實驗簡介 Bomb LAB 目的是熟悉彙編。 一共有7關,六個常規關卡和一個隱藏關卡,每次我們需要輸入正確的拆彈密碼才能進入下一關,而具體的拆彈密碼藏在彙編程式碼中。實驗中的bomb實際上是一個程式的二進位制檔案,該程式由一系列ph
實驗2:棧和佇列的基本操作實現及其應用
一、實驗目的1、 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2、 學會使用棧和佇列解決實際問題。二、實驗內容1、自己確定結點的具體資料型別和問題規模:分別建立一個順序棧和鏈棧,實現棧的壓棧和出棧操作。分別建立一個順序佇列和鏈佇列,實現佇列的
作業:實驗2:3&2:8
利息計算器 一、問題及程式碼 /* 檔名稱:six.cpp 作者:吳濤濤 完成日期;2017年3月8日 版本號:v1.0 對任務及求解方法的描述:專案3:定期存款利息計算器 輸入存款金額並選擇存款種類,計算出利息(不計利息稅)和本息合計。要求使用switch語句,根據選擇
2017-2018-2 20155231《網絡對抗技術》實驗二:後門原理與實踐
虛擬機ip src oca ali 執行 -m 定時 port art 2017-2018-2 20155231《網絡對抗技術》實驗二:後門原理與實踐 常用後門工具 一、Windows獲得Linux的Shell 在本機cmd中使用ipconfig獲得windows的IP地址
2017-2018-2 20155230《網絡對抗技術》實驗3:免殺原理與實踐
語言 code 編碼 病毒 div 就是 加密 網絡 殺毒軟件 基礎問題回答 1、殺軟是如何檢測出惡意代碼的? 殺軟檢測惡意代碼主要有三種方式: ①特征碼的檢測:殺毒軟件的病毒庫記錄了一些惡意軟件的特征碼,這些特征碼由一個不大於64字節的字符串組成,且是只有該病毒內
2017-2018-2 20155230《網絡對抗技術》實驗6:信息搜集與漏洞掃描
獎學金 doc 域名服務 掃描 mage https 路由 存在 -s 實踐過程記錄 1、信息搜集 1、whois查詢 以百度官網的網址為例,使用whois查詢域名註冊信息(進行whois查詢時去掉www等前綴,因為註冊域名時通常會註冊一個上層域名,子域名由自身的域名服務
2017-2018-2 20155231《網絡對抗技術》實驗八: WEB基礎實驗
常用 電腦 。。 upgrade OS 實戰 進行 更新 ID 實踐目標 掌握信息搜集的最基礎技能與常用工具的使用方法。 實驗內容 (1)各種搜索技巧的應用 比如IP2Location 地理位置查詢 查詢了自己 IP路由偵查 工具:traceroute tracero
2017-2018-2 20155231《網絡對抗技術》實驗五: MSF基礎應用
進行 rar oca aso 哪些 但是 前綴 關閉 搜索 2017-2018-2 20155231《網絡對抗技術》實驗五: MSF基礎應用 實踐目標 掌握信息搜集的最基礎技能與常用工具的使用方法。 實驗內容 (1)各種搜索技巧的應用 比如IP2Location 地理位置
2017-2018-2 20155230《網絡對抗技術》實驗9:Web安全基礎
comm 展示 在服務器 phi fig 人在 attack 添加 sim 實踐過程記錄 輸入java -jar webgoat-container-7.1-exec.jar 在瀏覽器輸入localhost:8080/WebGoat,進入WebGoat開始實驗 目錄
實驗四:shell編程(2)
AR shift ber AC info 作用 name source 幫助信息 1. shell 變量基本用法及常用符號使用 此部分要求寫出實現相應要求的 shell 命令,截圖顯示 (1)將主提示符改為用戶的主目錄名 (2)將字符串 DOS file c:&
實驗五:樹和二叉樹的實驗2
使用二叉樹的鏈式儲存結構,建立一棵二叉樹,進行前序、中序以及後序遍歷,同時求得二叉樹的結點個數以及葉子結點個數。 程式原始碼: # ifndef Bitree_H # define Bitree_H struct BiNode { char data; BiNode *lchi
實驗目的: 1、理解使用者與模式的概念,掌握oracle中使用者管理的基本方法 2、理解系統許可權、物件許可權的概念,掌握分配許可權的方法 3、理解角色的概念,掌握角色的應用方法 實驗內容: 一、使用者
撰寫人——軟體二班——陳喜平 一、使用者管理與應用 1、檢視使用者與模式 show USER; 2、建立使用者 sqlplus sys/[email protected] as sysdba CREATE USER t16436220 IDENTIFIED B
函式程式設計實驗四:列表練習(2)
{- 吳坎 17341163 [email protected] 資料科學與計算機學院計算機專業 -} {- 稱一個三元組(x,y,z)是畢達哥拉斯三元組,如果x*x + y*y == z*
實驗2.2:二叉樹遍歷的一些應用
題目:以實驗2.1的二叉連結串列為儲存結構,編寫程式實現求二叉樹結點個數、葉子結點個數、二叉樹的高度以及交換二叉樹所有左右子樹的操作。部分程式碼:求二叉樹結點個數://求二叉樹結點個數 int Size(BinaryTreeNode *t){ if(!t) retur