数学建模社区-数学中国

标题: matlab程序方面 [打印本页]

作者: l刘书伶    时间: 2013-8-24 11:16
标题: matlab程序方面
在指派问题中:' f. n* l- S9 Z5 x5 h# d
c=[3 8 2 10 3;8 7 2 9 7;6 4 2 7 5;8 4 2 3 5;9 10 6 9 0];% x4 t( B" B9 ^. R: n- z% P5 W- U
c=c(;8 q* j0 h: C$ Z5 L( |- ~. |
a=zeros(10,25);
5 w0 d2 r- E4 z& i(这一步为什么要创造一个10*25矩阵呀)
. d- f6 e$ s: y3 @) K4 Sfor i=1:5
) C: P- [4 _& S: u+ n& `7 p9 E& K0 j   a(i,(i-1)*5+1:5*i)=1;(此处看不懂)
8 h- Q! F) t- x/ r  a(5+i,i:5:25)=1;(此处看不懂)
4 ^/ R$ q- v  Y0 r. Tend5 W% u6 H0 E) u4 {! y0 ~
b=ones(10,1);
# z7 y/ B) A5 y* F4 B. l& m0 W[x,y]=bintprog(c,[],[],a,b);2 W2 P' X8 o9 z0 |5 E# K
x=reshape(x,[5,5]),y9 v9 t: f/ q- v; J' f
这个程序有几处看不懂,希望高手解答,谢谢!
: R, t. Q: E: L% l9 C( e! B: q! `! k
作者: kong1234    时间: 2013-8-24 12:10
楼主,问题背景呢?bintprog函数是解决整数规划的,,你可以在matlab中doc bintprog 学习一下
作者: l刘书伶    时间: 2013-8-24 12:24
kong1234 发表于 2013-8-24 12:10 ) t1 E3 {/ a" z3 \! ^
楼主,问题背景呢?bintprog函数是解决整数规划的,,你可以在matlab中doc bintprog 学习一下

1 p* E) z! @$ j就是指派5个人去干5项工作,每人干且仅干一项工作,若分配弟i个人去干弟j项工作,需要花费c(i,j)单位时间,问如何分配工作才能使得工人花费的总时间最少。。。。
作者: l刘书伶    时间: 2013-8-24 12:29
kong1234 发表于 2013-8-24 12:10 3 @# G8 l8 r5 R0 X
楼主,问题背景呢?bintprog函数是解决整数规划的,,你可以在matlab中doc bintprog 学习一下
" P4 ~  F7 q8 {# t4 ?  G
问题背景:就是指派5个人去做5项工作,每人干且仅干一项工作,若分配第i人去干第j项工作,需要花费才(i,j)单位时间,问应该如何分配工作才能使得总的时间最少。。。。谢谢了
作者: l刘书伶    时间: 2013-8-24 12:42
kong1234 发表于 2013-8-24 12:10 * N/ Z7 z. |/ I' D- X7 I
楼主,问题背景呢?bintprog函数是解决整数规划的,,你可以在matlab中doc bintprog 学习一下

2 n8 F# [( X  O# a/ R1 g( o问题背景:就是分配5个人去干5项工作,每人干且仅干一项工作,若分配第i个人去干第j项工作,需要花费c(i,j)单位时间,问如何分配工作能使得工人花费时间最少。。。谢谢了。。
作者: l刘书伶    时间: 2013-8-24 12:42
问题背景:就是分配5个人去干5项工作,每人干且仅干一项工作,若分配第i个人去干第j项工作,需要花费c(i,j)单位时间,问如何分配工作能使得工人花费时间最少。。。谢谢了。。
作者: magic2728    时间: 2013-8-24 14:18
这是指派问题的matlab线性规划解法。由于matlab的函数格式只能是x为列向量,所以必须把指派矩阵拉成一列,而对应的限定条件也就变成了a(10,25)。10是10个限定条件决定的,25是25个xij值,你看不懂的for循环里的两句话是指的行和,列和分别为0的意思。
作者: l刘书伶    时间: 2013-8-24 18:34
magic2728 发表于 2013-8-24 14:18 6 V, `+ d% _' k  F# O
这是指派问题的matlab线性规划解法。由于matlab的函数格式只能是x为列向量,所以必须把指派矩阵拉成一列,而 ...

& X9 V* V+ f7 d, _* S5 p) `恩恩,搞懂了,谢谢!
作者: 小黑主    时间: 2013-8-25 11:27
指派问题中包含了几种算法,其中最常见的算法就是匈牙利算法,在此种算法中需要构建矩阵,那个循环你把值带进去就知道了




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5