1. 程式人生 > >實驗2:運輸問題

實驗2:運輸問題

題目:某企業集團有 3個生產同類產品的工廠,生產的產品由 4個銷售中心出售,各工廠的生產量、各銷售中心的銷售量(假定單位均為噸)、各工廠到各銷售點的單位運價(元/噸)示於表1中。要求研究產品如何調運才能使總運費最小。

表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=

4

       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譯碼器,以下

資料結構實驗2C++實現單鏈表類

       太簡單了,沒啥可說的,程式碼意義明白如話。        題目與要求:                                                          實驗2      2.1 實驗目的        熟練掌握線

CSAPP實驗2Bomb Lab筆記

實驗簡介 ​ Bomb LAB 目的是熟悉彙編。 ​ 一共有7關,六個常規關卡和一個隱藏關卡,每次我們需要輸入正確的拆彈密碼才能進入下一關,而具體的拆彈密碼藏在彙編程式碼中。實驗中的bomb實際上是一個程式的二進位制檔案,該程式由一系列ph

實驗2棧和佇列的基本操作實現及其應用

一、實驗目的1、   熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2、   學會使用棧和佇列解決實際問題。二、實驗內容1、自己確定結點的具體資料型別和問題規模:分別建立一個順序棧和鏈棧,實現棧的壓棧和出棧操作。分別建立一個順序佇列和鏈佇列,實現佇列的

作業實驗23&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《網絡對抗技術》實驗9Web安全基礎

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