主要内容gydF4y2Ba

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。gydF4y2Ba

混合整数線形計画法の基礎:問題ベースgydF4y2Ba

この例では,混合整数線形問題を解く方法を説明します。この例は複雑ではありませんが,問題ベースのアプローチを使用して問題を定式化する一般的な手順を示しています。この例を示すビデオについては,gydF4y2Ba求解一个混合整数线性规划问题的优化建模gydF4y2Baを参照してください。gydF4y2Ba

この問題に対するソルバーベースのアプローチについては,gydF4y2Ba混合整数線形計画法の基礎:ソルバーベースgydF4y2Baを参照してください。gydF4y2Ba

問題の説明gydF4y2Ba

さまざまな化学組成の鋼鉄を融合して,特定の化学組成の25トンの鋼鉄を精製するものとします。精製された製品には,重量で炭素5%とモリブデン5%(つまり,炭素が25トン* 5% = 1.25トン,モリブデンが1.25トン)が含まれている必要があります。目的は鋼鉄の融合コストを最小化することです。gydF4y2Ba

维斯特伯格Carl-Henrikこの問題は,说比约克隆德およびEskil Hultman”gydF4y2Ba混合整数规划在瑞典某钢厂的应用gydF4y2Ba1977年2月“接口7卷,2号页39-43から引用されたものです。これらの要旨はgydF4y2Bahttps://doi.org/10.1287/inte.7.2.39gydF4y2Baで参照できます。gydF4y2Ba

このために4つの鋼鉄のインゴットを購入できます。各インゴットの1つしか利用できません。gydF4y2Ba

我gydF4y2Ba ngydF4y2Ba ggydF4y2Ba ogydF4y2Ba tgydF4y2Ba WgydF4y2Ba egydF4y2Ba 我gydF4y2Ba ggydF4y2Ba hgydF4y2Ba tgydF4y2Ba 我gydF4y2Ba ngydF4y2Ba TgydF4y2Ba ogydF4y2Ba ngydF4y2Ba 年代gydF4y2Ba %gydF4y2Ba CgydF4y2Ba 一个gydF4y2Ba rgydF4y2Ba bgydF4y2Ba ogydF4y2Ba ngydF4y2Ba %gydF4y2Ba 米gydF4y2Ba ogydF4y2Ba lgydF4y2Ba ygydF4y2Ba bgydF4y2Ba dgydF4y2Ba egydF4y2Ba ngydF4y2Ba ugydF4y2Ba 米gydF4y2Ba CgydF4y2Ba ogydF4y2Ba 年代gydF4y2Ba tgydF4y2Ba TgydF4y2Ba ogydF4y2Ba ngydF4y2Ba 1gydF4y2Ba 5gydF4y2Ba 5gydF4y2Ba 3.gydF4y2Ba $gydF4y2Ba 3.gydF4y2Ba 5gydF4y2Ba 0gydF4y2Ba 2gydF4y2Ba 3.gydF4y2Ba 4gydF4y2Ba 3.gydF4y2Ba $gydF4y2Ba 3.gydF4y2Ba 3.gydF4y2Ba 0gydF4y2Ba 3.gydF4y2Ba 4gydF4y2Ba 5gydF4y2Ba 4gydF4y2Ba $gydF4y2Ba 3.gydF4y2Ba 1gydF4y2Ba 0gydF4y2Ba 4gydF4y2Ba 6gydF4y2Ba 3.gydF4y2Ba 4gydF4y2Ba $gydF4y2Ba 2gydF4y2Ba 8gydF4y2Ba 0gydF4y2Ba

3つのグレードの合金および1つのグレードの鋼鉄くずを購入できます。合金と鋼鉄くずは分割して購入できます。gydF4y2Ba

一个gydF4y2Ba lgydF4y2Ba lgydF4y2Ba ogydF4y2Ba ygydF4y2Ba %gydF4y2Ba CgydF4y2Ba 一个gydF4y2Ba rgydF4y2Ba bgydF4y2Ba ogydF4y2Ba ngydF4y2Ba %gydF4y2Ba 米gydF4y2Ba ogydF4y2Ba lgydF4y2Ba ygydF4y2Ba bgydF4y2Ba dgydF4y2Ba egydF4y2Ba ngydF4y2Ba ugydF4y2Ba 米gydF4y2Ba CgydF4y2Ba ogydF4y2Ba 年代gydF4y2Ba tgydF4y2Ba TgydF4y2Ba ogydF4y2Ba ngydF4y2Ba 1gydF4y2Ba 8gydF4y2Ba 6gydF4y2Ba $gydF4y2Ba 5gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 2gydF4y2Ba 7gydF4y2Ba 7gydF4y2Ba $gydF4y2Ba 4gydF4y2Ba 5gydF4y2Ba 0gydF4y2Ba 3.gydF4y2Ba 6gydF4y2Ba 8gydF4y2Ba $gydF4y2Ba 4gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 年代gydF4y2Ba cgydF4y2Ba rgydF4y2Ba 一个gydF4y2Ba pgydF4y2Ba 3.gydF4y2Ba 9gydF4y2Ba $gydF4y2Ba 1gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba

問題の定式化gydF4y2Ba

問題を定式化するには,まず制御変数を決定します。変数gydF4y2Ba锭(1)= 1gydF4y2Baを取るとインゴットgydF4y2Ba1gydF4y2Baの購入を意味し,gydF4y2Ba锭(1)= 0gydF4y2Baを取るとインゴットを購入しないことを意味します。同様に,変数gydF4y2Ba锭(2)gydF4y2Ba~gydF4y2Ba锭(4)gydF4y2Baは,インゴットgydF4y2Ba2gydF4y2Ba~gydF4y2Ba4gydF4y2Baを購入するかどうかを示す2値変数です。gydF4y2Ba

変数gydF4y2Ba合金(1)gydF4y2Ba~gydF4y2Ba合金(3)gydF4y2Baは購入する合金gydF4y2Ba1gydF4y2Ba、gydF4y2Ba2gydF4y2Ba,およびgydF4y2Ba3.gydF4y2Baのトン単位の量です。gydF4y2Ba废gydF4y2Baは購入する鋼鉄くずの量を示します。gydF4y2Ba

steelprob = optimproblem;锭= optimvar (gydF4y2Ba“锭”gydF4y2Ba4gydF4y2Ba“类型”gydF4y2Ba,gydF4y2Ba“整数”gydF4y2Ba,gydF4y2Ba下界的gydF4y2Ba0,gydF4y2Ba“UpperBound”gydF4y2Ba1);合金= optimvar (gydF4y2Ba“合金”gydF4y2Ba,3,gydF4y2Ba下界的gydF4y2Ba, 0);取消= optimvar (gydF4y2Ba“取消”gydF4y2Ba,gydF4y2Ba下界的gydF4y2Ba, 0);gydF4y2Ba

変数と関連付けられたコストの式を作成します。gydF4y2Ba

weightIngots =(5、3、4、6);costIngots = weightIngots。* [350330310280];costAlloys = [500450400];costScrap = 100;成本=成本锭*锭+成本合金*合金+成本废料*废料;gydF4y2Ba

問題に目的関数としてコストを含めます。gydF4y2Ba

steelprob.目标=成本;gydF4y2Ba

この問題には3つの等式制約があります。最初の制約は総重量が25トンであることです。鋼鉄の重量を計算します。gydF4y2Ba

总重量=重量锭*锭+总(合金)+废料;gydF4y2Ba

2番目の制約は炭素の重量が25トンの5%(1.25トン)であることです。鋼鉄内の炭素の重量を計算します。gydF4y2Ba

carbonIngots =(5、4、5、3)/ 100;carbonAlloys =(8、7、6)/ 100;carbonScrap = 3/100;totalCarbon = (weight tingots .* carbon锭)*锭+碳合金*合金+碳废料*废料;gydF4y2Ba

3番目の制約はモリブデンの重量が1.25トンであることです。鋼鉄内のモリブデンの重量を計算します。gydF4y2Ba

molybIngots = [3, 3, 4, 4] / 100;molybAlloys =(6、7、8)/ 100;molybScrap = 9/100;totalMolyb = (weightIngots.*molybIngots)*锭+ molybAlloys*合金+钼废料*废料;gydF4y2Ba

制約を問題に含めます。gydF4y2Ba

steelpro . constraints .conswt = totalWeight == 25;steelpro . constraints .conscarb = totalCarbon = 1.25;steelpro . constraints .consmolyb = totalMolyb == 1.25;gydF4y2Ba

問題を解くgydF4y2Ba

すべての入力を指定したら,ソルバーを呼び出します。gydF4y2Ba

[sol,fval]=求解(steelprob);gydF4y2Ba
使用intlinprog解决问题。LP:最佳目标值为8125.60万。切割生成:应用3个mir切割。下界是8495000000。相对差距为0.00%。找到最优解。Intlinprog在根节点停止,因为客观值在最优值options的间隙公差范围内。AbsoluteGapTolerance = 0(默认值)。intcon变量是在公差选项内的整数。IntegerTolerance = 1e-05(默认值)。gydF4y2Ba

解を表示します。gydF4y2Ba

sol.ingotsgydF4y2Ba
ans =gydF4y2Ba4×1gydF4y2Ba1.0000 1.0000 0 1.0000gydF4y2Ba
sol.alloysgydF4y2Ba
ans =gydF4y2Ba3×1gydF4y2Ba7.2500 0 0.2500gydF4y2Ba
sol.scrapgydF4y2Ba
ans = 3.5000gydF4y2Ba
fvalgydF4y2Ba
fval = 8.4950 e + 03gydF4y2Ba

8495美元最適購入コストはです。インゴットgydF4y2Ba1gydF4y2Ba、gydF4y2Ba2gydF4y2Ba、gydF4y2Ba4gydF4y2Baを購入し,gydF4y2Ba3.gydF4y2Baを購入しません。合金gydF4y2Ba1gydF4y2Ba7.25をトン,合金gydF4y2Ba3.gydF4y2Ba0.25をトン,鋼鉄くずを3.5トン購入します。gydF4y2Ba

関連するトピックgydF4y2Ba