function [x,min_fval,exitflag] = myTaskArrange2(f)%% ç¨åºåè½è¯´æ%æ±è§£ä¸å¹³è¡¡ä»»å¡ææ´¾é®é¢%====è¾å
¥åæ°====%f mè¡nåçæçç©éµï¼m个任å¡ï¼n个人ï¼%====è¾åºåæ°====%x ç®æ å½æ°åæå°å¼æ¶çèªåéå¼%min_fval ç®æ å½æ°çæå°å¼% exitflag éåºæ è¯ç¬¦%ç¨åºç¼åæ¶é´ï¼2019å¹´09æ%% ç¨åºä¸»ä½[m,n] = size(f); % è·åæçç©éµä¸ä»»å¡ç个æ°å人ç个æ°% æè¡ææä¸ååéf = f';
F = f(:);% æé çå¼çº¦æï¼æ¯ä¸è¡å èµ·æ¥çäº1ï¼å³æ¯ä¸ªä»»å¡å¿
é¡»åé
ä¸äººï¼Aeq = cell(m,m);
Aeq(:) = {zeros(1,n)};
Aeq(eye(m,m)==1) = {ones(1,n)};
Aeq = cell2mat(Aeq);
Beq = ones(m,1);% åæ´åéå°åintcon = 1:m*n;% åéåå¼èå´ï¼å¤§äº0å°äº1ï¼LB = zeros(m*n,1);
UB = ones(m*n,1);if m == n % å¦æä»»å¡æ°çäºäººæ°
% æé çå¼çº¦æï¼æ¯ä¸ªäººä¸å®ä¼è¢«å®æï¼
Aeq2 = repmat(eye(n,n),1,m);
Beq2 = ones(n,1);
Aeq = [Aeq;Aeq2];
Beq = [Beq;Beq2];
% æ´æ°è§åæ±è§£
[x,min_fval, exitflag] = intlinprog(F,intcon,[],[],Aeq,Beq,LB,UB);
elseif m < n % å¦æä»»å¡æ°å°äºäººæ°
% æé ä¸çå¼çº¦æï¼æ¯ä¸åå èµ·æ¥å¤§äº0å°äº1ï¼å³æ¯ä¸ªäººå¯è½è¢«å®æä¹å¯è½ä¸è¢«å®æä¸ä¸ªä»»å¡ï¼
A = repmat(eye(n,n),1,m);
B = ones(n,1); % å©ç¨æ´æ°è§åå½æ°æ±è§£
[x,min_fval, exitflag] = intlinprog(F,intcon,A,B,Aeq,Beq,LB,UB);
elseif m > n % å¦æä»»å¡æ°å¤§äºäººæ°
% æé ä¸çå¼çº¦æï¼æ¯ä¸åå èµ·æ¥å¤§äº1å°äºmï¼å³æ¯ä¸ªäººå¯è½è¢«å®æä¸ä¸ªæè
å¤ä¸ªä»»å¡ï¼æå¤ä¸è¶
è¿ä»»å¡æ°mï¼
A = repmat(eye(n,n),1,m);
B = ones(n,1)*m; % å©ç¨æ´æ°è§åå½æ°æ±è§£
[x,min_fval, exitflag] = intlinprog(F,intcon,A,B,Aeq,Beq,LB,UB);end%% å°ç»æè¿åææçç©éµå¯¹åºå½¢å¼x = reshape(x,n,m)';
温馨提示:答案为网友推荐,仅供参考