数学建模社区-数学中国

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

作者: l刘书伶    时间: 2013-8-24 11:16
标题: matlab程序方面
在指派问题中:
# v7 {  |0 _; H: R1 t. ^8 kc=[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];, x) @# G6 O5 }
c=c(;4 W) H) K0 }( |2 A9 y
a=zeros(10,25);
- _2 u3 f) E: O9 K) [(这一步为什么要创造一个10*25矩阵呀)' r! j% w% X4 }" w
for i=1:5
) [# T& \9 L- t/ i- W   a(i,(i-1)*5+1:5*i)=1;(此处看不懂)- }# H1 d# r# T' A: V
  a(5+i,i:5:25)=1;(此处看不懂)0 Z% F+ p: E9 S( T2 _6 p0 D
end
% C9 M" Q/ W) E2 [b=ones(10,1);! w( H& t2 K1 b3 ^
[x,y]=bintprog(c,[],[],a,b);
7 E8 D9 T" {) N; I& L8 Lx=reshape(x,[5,5]),y
) b1 J& @) A! F0 X/ w$ |这个程序有几处看不懂,希望高手解答,谢谢!! o" F7 i9 o5 ]

作者: kong1234    时间: 2013-8-24 12:10
楼主,问题背景呢?bintprog函数是解决整数规划的,,你可以在matlab中doc bintprog 学习一下
作者: l刘书伶    时间: 2013-8-24 12:24
kong1234 发表于 2013-8-24 12:10 0 |- U$ K0 o: U, e6 G+ {
楼主,问题背景呢?bintprog函数是解决整数规划的,,你可以在matlab中doc bintprog 学习一下

+ ?5 `0 d% C1 ~9 v' s! ]就是指派5个人去干5项工作,每人干且仅干一项工作,若分配弟i个人去干弟j项工作,需要花费c(i,j)单位时间,问如何分配工作才能使得工人花费的总时间最少。。。。
作者: l刘书伶    时间: 2013-8-24 12:29
kong1234 发表于 2013-8-24 12:10
( F2 W" n: o7 ^! C/ e7 S3 u楼主,问题背景呢?bintprog函数是解决整数规划的,,你可以在matlab中doc bintprog 学习一下
5 U: z( O# {- u: S& h
问题背景:就是指派5个人去做5项工作,每人干且仅干一项工作,若分配第i人去干第j项工作,需要花费才(i,j)单位时间,问应该如何分配工作才能使得总的时间最少。。。。谢谢了
作者: l刘书伶    时间: 2013-8-24 12:42
kong1234 发表于 2013-8-24 12:10 : d: R; l* p* A5 U! }
楼主,问题背景呢?bintprog函数是解决整数规划的,,你可以在matlab中doc bintprog 学习一下
$ v! @8 q9 Y+ ?" a! g
问题背景:就是分配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
( A, M$ T  o& K这是指派问题的matlab线性规划解法。由于matlab的函数格式只能是x为列向量,所以必须把指派矩阵拉成一列,而 ...
1 r/ k" H. _, W" T3 W8 k- v
恩恩,搞懂了,谢谢!
作者: 小黑主    时间: 2013-8-25 11:27
指派问题中包含了几种算法,其中最常见的算法就是匈牙利算法,在此种算法中需要构建矩阵,那个循环你把值带进去就知道了




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