QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1663|回复: 0
打印 上一主题 下一主题

线性规划(一):运输问题 (产销平衡) & 指派问题

[复制链接]
字体大小: 正常 放大

889

主题

65

听众

17万

积分

  • TA的每日心情
    开心
    2023-3-15 17:49
  • 签到天数: 224 天

    [LV.7]常住居民III

    社区QQ达人 邮箱绑定达人 元老勋章 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    跳转到指定楼层
    1#
    发表于 2021-10-29 11:50 |显示全部楼层 |倒序浏览
    |招呼Ta 关注Ta
    1.可以转化为线性规划的问题

    很多看起来不是线性规划的问题也可以通过变换变成线性规划的问题来解决。下面举几个例子:

    2. 运输问题(产销平衡)  :康—希表上作业法

    ! Y; e+ I% m1 M* p; B& c, H. g1 E9 J
    3. 指派问题的数学模型


    ' S8 E) S' o* Z3 h
    上述指派问题的可行解可以用一个矩阵表示,其每行每列均有且只有一个元素为 1,其余元素均为 0;可以用 1,...,n 中的一个置换表示。 问题中的变量只能取 0 或 1,从而是一个 0-1 规划问题。一般的 0-1 规划问题求解 极为困难。但指派问题并不难解,其约束方程组的系数矩阵十分特殊(被称为全单位模矩阵,其各阶非零子式均为正负1 ),其非负可行解的分量只能取0或1,故约束 =0或1 可改写为 而不改变其解。此时指派问题被转化为一个特殊的运输问题,其中m=n, # R" a5 I4 ^) J6 J
    求解指派问题的匈牙利算法

    有时问题会稍复杂一些。

    例 9 求解系数矩阵C 的指派问题


    ! n  {" E3 h% |% i2 z2 o

    ! ^1 O+ h: \0 @$ `# U

    , d4 G, i/ W5 @5 i; P5 z" U
    4. 指派问题的计算机求解整数规划问题的求解可以使用 Lingo 等专用软件。对于一般的整数规划问题,无法 直接利用 Matlab 的函数,必须利用 Matlab 编程实现分枝定界解法和割平面解法。但对 于指派问题等 0−1整数规划问题,可以直接利用 Matlab 的函数 bintprog 进行求解。
    ' h" Z5 i/ F7 y  W& c/ m, c) X

    ' m4 c+ E6 g+ K6 g1 F# p# M7 ^
    解:编写 Matlab 程序如下: 求得最优值为 21,最优指派方案为 .
    ' d8 g' l. ~. X5 @4 W, _
    c=[3 8 2 10 3;8 7 2 9 7;6 4 2 7 5   
    2 }' V, i- q# I$ K" A4 Z   8 4 2 3 5;9 10 6 9 10];
    * s& a3 S3 B# {4 V. C2 y, Kc=c(; # I" }2 A4 |6 J$ ~7 l
    a=zeros(10,25); 8 g- F+ s' Y7 \' k+ L/ x1 n
    for i=1:5    ) v& f- e/ O: d
        a(i,(i-1)*5+1:5*i)=1;    ; k+ v1 C" Z6 Y; K
        a(5+i,i:5:25)=1; * Z$ Q% w  r5 |0 o- w  H8 Q
    end
    + K( D3 G3 {* ~6 w9 C2 Ub=ones(10,1); ( z, R1 @7 C% m4 o; E) B; W7 Q
    [x,y]=bintprog(c,[],[],a,b); : ^) t3 p5 a4 g$ M
    x=reshape(x,[5,5]),y
    ; n+ S, L" `4 ~  p( N; f7 {$ I$ q) I: }& G2 P( y
    求解的 LINGO 程序如下:
    ; J6 {5 |. X( d% s5 Imodel:
    ( @( t. {! j/ {6 Zsets:
    9 K& k' |+ I( }) g- Nvar/1..5/; - q$ @! H+ `; X) C3 r- w
    link(var,var):c,x;
    / j6 U! O# G6 x$ {& `) `6 y1 hendsets 8 r" l5 ]8 @- ~" f$ q
    data:
      Y# i7 v; D1 s* G, P8 j  S8 Yc=3 8 2 10 3   
    . }9 t8 n3 h7 y& ?6 Y( F  K  8 7 2 9 7   
    & ~7 e; c( ~' i) h9 n/ P) C/ D5 t  6 4 2 7 5   + V! u& _8 R: K* [6 c7 l- C/ @9 ~
      8 4 2 3 5   
    % |, _1 f8 ?; d( i6 M  a6 _/ n: y  R  9 10 6 9 10; 1 d- R: j& [* W6 m
    enddata " o1 e" I: i, F1 o! ?1 d; z
    min=@sum(link:c*x); ' Y" T8 v, u! t4 U% h) i) u3 j
    @for(var(i)sum(var(j):x(i,j))=1);
    4 L" \5 y" g1 p@for(var(j)sum(var(i):x(i,j))=1); ( x: q) y- y$ ^( i4 Z
    @for(linkbin(x));
    / d9 l# E& C' d0 M7 v9 xend
    6 I6 d0 D! T. G: d4 a5 C2 [; i
    * t2 f7 x. P9 S. X# h" n# y, J! n$ q: a) n3 b$ D! f
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2024-5-30 16:08 , Processed in 0.886800 second(s), 51 queries .

    回顶部