- 12
- 0
- 约7.62千字
- 约 51页
- 2018-03-04 发布于浙江
- 举报
[财务管理]ERP整数规划问题
引例:有四个熟练工人,他们都是多面手,有四项任务要他们完成。若规定每人必须完成且只完成一项任务,而每人完成每项任务的工时耗费如下表,问如何分配任务使完成四项任务的总工时耗费最少? 2、计算步骤 第一步:变换效率矩阵,使每行每列至少有一个零 行变换:找出每行最小元素,从该行各元素中减去之 列变换:找出每列最小元素,从该列各元素中减去之 (2)逐列检查,若该列只有一个未标记的零,对其加( )标记,将( )标记元素同行同列上其它的零打上*标记。若该列没有或有二个以上未标记的零,暂不标记,转下一列检查,直到所有列检查完; 第二步(最优解检验)检查覆盖所有零元素的直线是否为m条 划线规则 (1)逐行检查,若该行只有一个未标记的零,对其加( )标记,将 ( )标记元素同行同列上其它的零打上*标记。若该行没有或有二个以上未标记的零,暂不标记,转下一行检查,直到所有行检查完; (3)重复1、2后,可能出现三种情况: a、每行都有一个 (0),显然已找到最优解,令对应(0)位置的 xij=1; b、仍有零元素未标记,此时,一定存在某些行和列同时有多个零,称为僵局状态(m较大时可能出现),因为无法采用 1、 2 中的方法继续标记。 c、所有零都已标记,但标有( )的零的个数少于m; (4)打破僵局。令未标记零对应的同行同列上其它未标记零的个数为该零的指数,选指数最小的先标记 ( ),划去同行同列其他0元素(标注*);采用这种方法直至所有零都被标记,或出现 情况 a,或 情况 c 。 (5)出现c情况的处理方法(划线过程)行表示人,列表示任务 对没有标记 ( ) 的行打?(没有安排任务) 对打? 行上所有其它零元素对应的列打 ?(安排任务) 再对打 ? 列上有 ( ) 标记的零元素对应的行打 ? 重复上面三步骤,直至无法继续 对没有打 ? 的行划横线(已经安排任务),对所有打 ? 的列划垂线(已经安排任务) ? ? ? 划线后会出现两种情况: (1) 标记( )的零少于m个,但划有 m条直线,说明矩阵中已存在 m 个不同行不同列的零,但打破僵局时选择不合理,没能找到。回到 b 重新标记; (2) 少于m条直线,到第三步; 打破僵局时选择不当的结果: ? ? ? ? ? ? ? ? 结果仅出现 3 个标记 ( ),但却划出 4 条线, 说明什么?! 第三步:进一步变换(继续构造0元素) ? 在未划线的元素中找最小者,设为 ? ? 对未被直线覆盖的各元素减去 ? ? 对两条直线交叉点覆盖的元素加上 ? ? 只有一条直线覆盖的元素保持不变 以上步骤实际上仍是利用 定理 1 第四步:抹除所有标记,回到第二步,重新标记; 所有未画横线的行都减去这个最小元素,所有画竖线的列都减去这个最小元素的相反数 基本步骤: 答:最优分配方案为 x13= x21= x34 = x42 =1,其余为0, 即甲?C,乙?A,丙?D,丁?B,OBJ=20 课堂练习: 某商业公司设计开办五家新闻商店 。为了尽早建成营业,商业公司通知了 五个建筑公司,以便让每家新商店由一个建筑公司承建。 建筑公司对新商店 的建造费用的投标为 均见表7-9。商业公司应当对五家建筑公司怎样分配建造任务,才能使总建造费用最少? 4 8 7 15 12 7 9 17 14 10 6 9 12 8 7 6 7 14 6 10 6 9 12 10 6 对各行元素分别减去本行的最小元素,对各列也如此,得 ? ? ? 利用匈牙利法求得最优解为: 总的建设费用最少为34万元 3、不规范形式的转化 要求所有aij ?0 若某些 aij 0 ,则利用定理 1 进行变换,使所有 bij ? 0 目标函数为min型 对于max型目标函数,将效率矩阵中所有 aij 反号,则等效于求min型问题;再利用定理 1 进行变换,使所有 bij ? 0,则可采用上述算法 三、 一般的指派问题 1、最大化指派问题 设最大化指派问题系数矩阵 ,其中最大元素 为 。令矩阵 ,则以B为系数矩阵的最小指派问题和以A为系数矩阵的原最大化指派问题有相同最优解。 例7-11 矩阵 的最大元素为 ,取 ,求出B矩阵 则以C为系数矩阵的最大化指派问题和以B为系数矩阵的最小化指派问题有相同最优解。 当系数矩阵为利润矩阵、产量矩阵等时,就产生最大化指派问题。 2、人数和事数不等的指派问题 若人少事多,则添上一
原创力文档

文档评论(0)