999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Matlab解決m個(gè)人\項(xiàng)任務(wù)的最優(yōu)分派

2010-01-01 00:00:00
商場(chǎng)現(xiàn)代化 2010年3期

[摘要]對(duì)圖論中二元匹配問(wèn)題及其不同要求下的最優(yōu)匹配問(wèn)題,在線性規(guī)劃的理論基礎(chǔ)上,基于Matlab軟件,給出最大效益或最小成本的求解程序及運(yùn)行命令。具有較廣泛和很方便的實(shí)際應(yīng)用價(jià)值。

[關(guān)鍵詞]二元匹配 鄰接矩陣 最大效益分派 最小成本分派 Matlab程序命令

在現(xiàn)實(shí)中有多種多樣的分派(匹配)問(wèn)題,他們的共同特征是:在滿足一定的分派條件的前提下,通過(guò)制定分派方案以達(dá)到總體效益最佳的目的。本文就解決m個(gè)人、n項(xiàng)工作的最優(yōu)分派方案為目的,基于Matlab軟件給出的計(jì)算程序具有運(yùn)行速度快、命令簡(jiǎn)潔,并且對(duì)較多類型的分派問(wèn)題均可求解,在實(shí)際應(yīng)用中具有可操作性。

設(shè)二元匹配的鄰接矩陣為W,其中:cij表示xi人做yj項(xiàng)工作的效益(或表示yj項(xiàng)由xi人完成所付的成本);再設(shè)決策變量xij=1:第i個(gè)人做第j項(xiàng)工作(任務(wù));或xij=0:第i個(gè)人不做第j項(xiàng)工作(任務(wù))。根據(jù)線性規(guī)劃可建立如下所示的數(shù)學(xué)模型,其中:k為每個(gè)人所承擔(dān)的任務(wù)項(xiàng)數(shù),t為執(zhí)行每項(xiàng)任務(wù)所需要的人數(shù)。

一、一人一項(xiàng)任務(wù)的分派問(wèn)題

這種分派(匹配)問(wèn)題,是指每個(gè)人最多只能承擔(dān)一項(xiàng)任務(wù),并且每項(xiàng)任務(wù)最多只能由一個(gè)人承擔(dān);建立該類問(wèn)題的數(shù)學(xué)模型時(shí),只需在上面數(shù)學(xué)模型中(1)和(2)取等式,且k=t=1即可。為應(yīng)用方便,先建立三個(gè)m—文件(源碼、程序及命令在Matlab 6.5.1檢驗(yàn)通過(guò)),再分別討論這類問(wèn)題。

第一個(gè)M—文件matrixGenerator.m如下:

function array = matrixGenerator(len)

array = zeros(2 * len, len ^ 2);for row = 1 : len;for ind = 1 : len;

array(row, ind + (row - 1) * len) = 1; end, end,for row = len + 1 : len * 2;

for ind = 1 : len;array(row, (row - len) + (ind - 1) * len) = 1; end, end

第二個(gè)M—文件ipslvWraper.m為:

function [x, how] = ipslvWraper(W)

W=W'; a=W(:);a=a';valueMat=-a;len = length(valueMat);base = sqrt(len);

if floor(base) ~= base;sprintf('價(jià)值系數(shù)的個(gè)數(shù)不能開(kāi)平方而得到整數(shù),參數(shù)錯(cuò)誤!\');

how = 0; x = []; return; end,A = matrixGenerator(base);intlist = ones(1,len);

B = ones(2*base, 1);ctype = zeros(2*base, 1);xm = zeros(len,1);xM = ones(len,1);

[x,how] = ipslv_mex(valueMat,A,B,intlist,xM,xm,ctype);how,z = valueMat*x,x = x';

result = zeros(base, base);for i = 1 : len;result(i) = x(i);end,result'

第三個(gè)M—文件ipslv_mex.m在免費(fèi)工具箱lpsolve文件夾中,可以由MathWorks公司網(wǎng)站下載lpsolve文件夾。

1. 人數(shù)與任務(wù)的項(xiàng)數(shù)相等(m=n)

此時(shí)每人必須承擔(dān)一項(xiàng)任務(wù),且每項(xiàng)任務(wù)由且僅由一人承擔(dān)。

在Matlab運(yùn)行窗口中輸入以下運(yùn)行命令:

clear, W=[2 3 5 1 7;2 5 4 6 3;4 2 6 3 8;3 4 2 1 5;6 8 9 4 7]; [x, how] = ipslvWraper(W);

(若由鄰接矩陣求成本最小的匹配,W = -W即可。)返回的結(jié)果為:

how = 0z = -30(最優(yōu)值為-z = 30,若求成本最小的匹配,返回中最優(yōu)值為z。)

2. 人數(shù)多于任務(wù)的項(xiàng)數(shù)(m > n)

此時(shí)每人最多承擔(dān)一項(xiàng)任務(wù),且每項(xiàng)任務(wù)由且僅由一人承擔(dān)。人數(shù)m多于任務(wù)數(shù)n,增添m-n列,其元素均為0,構(gòu)成方陣(a);即虛構(gòu)m-n項(xiàng)任務(wù)。執(zhí)行這些虛構(gòu)的任務(wù)的效率為0,在求出效益最大匹配的輸出結(jié)果中,劃去虛構(gòu)的這些列,即可得最佳匹配方案。

3. 人數(shù)少于任務(wù)的項(xiàng)數(shù)(m < n)

此時(shí)每人必須承擔(dān)一項(xiàng)任務(wù),且每項(xiàng)任務(wù)最多有一人承擔(dān)。人數(shù)m少于任務(wù)數(shù)n,增添n-m行,其元素均為0,構(gòu)成方陣(b);即虛構(gòu)n-m個(gè)人。設(shè)這些虛構(gòu)人執(zhí)行各項(xiàng)任務(wù)的效率為0,在求出效益最大匹配的輸出結(jié)果中,劃去虛構(gòu)的這些行,即可得最佳匹配方案。

二、一人多項(xiàng)任務(wù)的分派問(wèn)題

所謂一人多項(xiàng)任務(wù)的分派(匹配),是指每個(gè)人可以承擔(dān)多項(xiàng)任務(wù),并且每項(xiàng)任務(wù)最多只能由一個(gè)人執(zhí)行;假設(shè)共有m個(gè)人和n項(xiàng)任務(wù),也分以下幾種不同的形式討論。

1. 每個(gè)人必須承擔(dān)k項(xiàng)任務(wù)

由于每個(gè)人必須承擔(dān)k項(xiàng)任務(wù),且每項(xiàng)任務(wù)最多只能由一個(gè)人執(zhí)行,所以有m×k≤n;建立的模型為:在前面給出的數(shù)學(xué)模型中(1)取“=k”,(2)取“≤1”即可。

在Matlab運(yùn)行窗口中輸入以下運(yùn)行命令:

W=[6 9 5 6 5 7;8 8 6 7 4 5;7 8 6 6 5 7]; W=W'; c=-W(:); c=c'; ze=zeros(1,5);zr=zeros(1,6);

A=[ones(1,6),zeros(1,12);zr,ones(1,6),zr;zeros(1,12),ones(1,6);1,ze,1,ze,1,ze;0 1,ze,1,ze,...

1 0 0 0 0;0 0 1,ze,1,ze,1,0 0 0;0 0 0 1,ze,1,ze,1 0 0;0 0 0 0 1,ze,1,ze,1 0;ze,1,ze,1,ze,1];

intlist=ones(1,18);B=[2;2;2;ones(6,1)];ctype=-[ones(9,1)];xm=zeros(18,1);xM=ones(18,1);

[x,how]=ipslv_mex(c,A,B,intlist,xM,xm,ctype);how,z=-c*x, x=x'

返回的結(jié)果為:how = 0,z = 42,最優(yōu)的匹配方案為:x1—y2、y5;x2—y1、y4;x3—y3、y6。

2. 每個(gè)人最多可承擔(dān)k項(xiàng)任務(wù)

每個(gè)人最多承擔(dān)k項(xiàng),且每項(xiàng)最多由一個(gè)人承擔(dān);模型為:在前面的數(shù)學(xué)模型中(1)取“≤k”,(2)取“≤1”。比如把例2改為:有三個(gè)人,六項(xiàng)任務(wù),要求每人最多完成三項(xiàng)任務(wù),其他條件和要求不變;只需在運(yùn)行命令中修改以下兩項(xiàng):B=[3;3;3;1;1;1;1;1;1]; ctype=[-1;-1;-1;-1;-1;-1;-1;-1;-1]。運(yùn)行后得最優(yōu)匹配為:x1—y2、y5、y6;x2—y1、y3、y4 。

3. 每個(gè)人最少執(zhí)行k項(xiàng)任務(wù)

每個(gè)人最少承擔(dān)k項(xiàng),且每項(xiàng)必須由一個(gè)人承擔(dān);模型為:在前面的數(shù)學(xué)模型中(1)取“≥k”,(2)取“=1”即可。比如把例2改為:有三個(gè)人,六項(xiàng)任務(wù),要求每人最少完成兩項(xiàng)任務(wù),其他條件和要求不變;只需在運(yùn)行命令中修改一項(xiàng):ctype=[1;1;1;0;0;0;0;0;0]; 運(yùn)行后得最優(yōu)匹配為:x1—y2、y6;x2—y1、y4;x3—y3、y5。

4. 第i人承擔(dān)k i項(xiàng)任務(wù)

這種情況更具有一般性,比如把例2改為:第一個(gè)人必須完成兩項(xiàng),第二個(gè)人最多完成四項(xiàng),第三個(gè)人最少完成一項(xiàng),其他條件不變。也只需在運(yùn)行命令中修改兩項(xiàng):B=[2;4;1;1;1;1;1;1;1]; ctype=[0;-1;1;0;0;0;0;0;0] .運(yùn)行后得最優(yōu)匹配為:x1—y2、y6;x2—y1、y3、y4;x3—y5。

三、多人合作完成任務(wù)的分派問(wèn)題

所謂多人合作完成任務(wù)的分派,是指有些任務(wù)可以由一個(gè)人單獨(dú)完成,而有些任務(wù)必須由若干個(gè)人共同合作才能完成;假設(shè)共有m個(gè)人和n項(xiàng)任務(wù),分以下幾種不同的形式討論。

1. 所有任務(wù)必須由h個(gè)人共同合作才能完成

由于每個(gè)人可承擔(dān)多項(xiàng)任務(wù),且每項(xiàng)任務(wù)必須由h個(gè)人共同合作才能完成;所建立的模型為:在前面給出的數(shù)學(xué)模型中(1)取“≤n”,(2)取“=h”。

在Matlab運(yùn)行窗口中輸入以下運(yùn)行命令:

W=[6 9 6 6 4;8 7 6 7 5;7 8 5 6 6];W=W';c=-W(:);c=c'; ze=zeros(1,4);

A=[1 1 1 1 1, zeros(1,10); zeros(1,5),1 1 1 1 1, zeros(1,5); zeros(1,10),1 1 1 1 1;

1,ze,1,ze,1,ze;0 1,ze,1,ze,1 0 0 0;0 0 1,ze,1,ze,1 0 0;0 0 0 1,ze,1,ze,1 0;ze,1,ze,1,ze,1];

intlist=ones(1,15);B=[5;5;5;2;2;2;2;2];ctype=[-1;-1;-1;0;0;0;0;0];xm=zeros(15,1); xM=ones(15,1);[x,how]=ipslv_mex(c,A,B,intlist,xM,xm,ctype);how,z=-c*x,x=x'

由返回的結(jié)果可得: how = 0 ,z = 68,所得最優(yōu)匹配為:y1—x2、x3;y2—x1、x3;y3—x1、x2;y4—x1、x2;y5—x2、x3。即:x1—y2、y3、y4;x2—y1、y3、y4、y5;x3—y1、y2、y5。

2. 所有任務(wù)最多由h個(gè)人共同合作才能完成

每個(gè)人可承擔(dān)多項(xiàng)任務(wù),且每項(xiàng)任務(wù)最多由h個(gè)人共同合作完成;模型為:在前面數(shù)學(xué)模型中(1)取“≤n”,(2)取“≤h”。在運(yùn)行命令中修改B:前m行的元素為n,后n行的元素為h;修改ctype:共有m+n行,所有元素都取-1。

3. 所有任務(wù)最少由h個(gè)人共同合作才能完成

每個(gè)人可承擔(dān)多項(xiàng)任務(wù),且每項(xiàng)任務(wù)最少由h個(gè)人共同合作完成;建立的模型為:在前面給出的數(shù)學(xué)模型中(1)取“≤n”,(2)取“≥h”。在運(yùn)行命令中修改B:前m行的元素為n,后n行的元素為h;修改ctype:前m行元素取-1,后n行元素取1。

4. 第i項(xiàng)任務(wù)必須由h i個(gè)人合作才能完成

由于每個(gè)人可承擔(dān)多項(xiàng)任務(wù),且第i項(xiàng)任務(wù)必須由hi個(gè)人共同合作完成;建立的模型為:在前面給出的數(shù)學(xué)模型中(1)取“≤n”,(2)取“=hi”。

比如將例3改為:有三個(gè)人,五項(xiàng)任務(wù),第一項(xiàng)、第三項(xiàng)任務(wù)必須由一人單獨(dú)完成;第二項(xiàng)、第四項(xiàng)、第五項(xiàng)任務(wù)必須由兩人合作完成;效益矩陣W如例3所給;求總效益最大的匹配方案。只需在例3的運(yùn)行命令中修改一項(xiàng):B=[3;3;3;1;2;1;2;2]; 運(yùn)行后得最優(yōu)匹配為:y1—x2;y2—x1、x3;y3—x1;y4—x1、x2;y5—x2、x3。

小結(jié):在線性規(guī)劃數(shù)學(xué)模型的理論基礎(chǔ)上,基于Matlab軟件。對(duì)諸類不同的分派問(wèn)題,模型的修改和命令的變化并不大,這就使模型和程序在實(shí)際中的應(yīng)用較為方便。程序運(yùn)行的不足之處是僅給出一個(gè)最優(yōu)方案;如果問(wèn)題存在多種最優(yōu)方案、如果需要得到,可以在鄰接矩陣中交換某些行,即可解決該問(wèn)題。比如對(duì)例3中的W=[6 9 6 6 4;8 7 6 7 5;7 8 5 6 6];變換為w=[7 8 5 6 6;8 7 6 7 5;6 9 6 6 4]; 可得到不同的最優(yōu)方案。

參考文獻(xiàn):

[1] 薛定宇等著:高等應(yīng)用數(shù)學(xué)問(wèn)題的MATLAB求解(第2版)[M].北京:清華大學(xué)出版社.2008.10

[2] 趙靜等編:數(shù)學(xué)建模與數(shù)學(xué)實(shí)驗(yàn)(第2版)[M].北京:高等教育出版社,2003.6

[3] 樓順天等著: MATLAB 7.X程序設(shè)計(jì)語(yǔ)言[M].西安:西安電子科技大學(xué)出版社,2007.8

主站蜘蛛池模板: 国产精品久久久久久影院| 成人在线视频一区| 欧美性天天| 国产乱人激情H在线观看| 日韩小视频在线观看| 亚国产欧美在线人成| 国产在线观看高清不卡| 久操中文在线| 日韩第九页| 四虎永久免费地址| 国产精品视频a| a级高清毛片| 青青操国产视频| 成人免费午间影院在线观看| 一级毛片不卡片免费观看| 国产无码精品在线| 亚洲无码精品在线播放| 欧美另类视频一区二区三区| 国产福利一区在线| 中文字幕在线播放不卡| 日韩亚洲综合在线| 精品国产www| 色天天综合久久久久综合片| 久久99国产综合精品1| 免费人欧美成又黄又爽的视频| 亚洲无码电影| 日韩亚洲高清一区二区| 91精品国产一区| 综合色区亚洲熟妇在线| 国产精品嫩草影院视频| 狼友视频一区二区三区| 色天堂无毒不卡| 精品在线免费播放| 美女毛片在线| 亚洲av中文无码乱人伦在线r| 亚洲最大综合网| 久久久久亚洲AV成人网站软件| 欧美笫一页| 五月激激激综合网色播免费| 亚洲三级色| 在线观看亚洲国产| 午夜丁香婷婷| 免费女人18毛片a级毛片视频| 亚洲精品男人天堂| 福利视频一区| 亚州AV秘 一区二区三区| 国产精品不卡片视频免费观看| 小13箩利洗澡无码视频免费网站| 国产一区二区丝袜高跟鞋| 九色免费视频| 2048国产精品原创综合在线| 91成人精品视频| 伊人色天堂| 亚洲综合片| 一级毛片在线播放免费观看 | 精品伊人久久久大香线蕉欧美| 黄色网页在线观看| 午夜不卡视频| 免费不卡在线观看av| 九九九精品成人免费视频7| 久久免费观看视频| 亚亚洲乱码一二三四区| 国产一区二区三区夜色| 国产流白浆视频| 97青青青国产在线播放| 欧美综合一区二区三区| 欧美精品高清| 国产AV无码专区亚洲A∨毛片| 免费亚洲成人| 亚洲IV视频免费在线光看| 亚洲人成人伊人成综合网无码| 国产经典在线观看一区| 欧美精品1区| 青草娱乐极品免费视频| 国产白浆在线观看| 国产精品jizz在线观看软件| 日韩高清无码免费| 国产日韩欧美视频| 亚洲欧美成aⅴ人在线观看 | 在线欧美国产| 在线欧美一区| 日本中文字幕久久网站|