これを解決するためにExcelソルバーを使用するにはどうすればよいですか?


-1

ABC Corporationは、電気部品およびコンポーネントのグローバル販売代理店です。同社はヨーロッパからコンポーネントとパーツを購入する契約を結び、3つのヨーロッパの港E1、E2、E3の倉庫に配送しています。さまざまなコンポーネントおよび部品は、米国の顧客からの需要に基づいてコンテナにロードされます。各ポートには、毎月使用できるコンテナの数が制限されています。その後、コンテナはコンテナ船によってP1、P2、P3、およびP4の港に海外に出荷されます。これらの港からコンテナは通常、トラックと連結され、I1、I2、およびI3の内陸港に運搬されます。毎月、各港で利用可能な貨物運送業者の数は決まっています。これらの内陸港は、「貨物村」またはインターモーダルジャンクションと呼ばれることもあり、そこではコンテナが収集され、ある輸送モードから別の輸送モードに移されます(つまり、トラックから鉄道、またはその逆)。内陸港から、コンテナはD1、D2、D3、D4、およびD5のABCの流通センターに輸送されます。以下は、この海外サプライチェーンに沿った各乗船地点と目的地点と、各港で利用可能なコンテナとの間の取り扱いと送料($ /コンテナ)です。

サンプルエクセルシート

赤色のセルは、特定のルートが実行可能なオプションではないため、考慮できないことを示します。この海外サプライチェーンに沿って、各出港地点から各目的地までの最適な出荷を決定します。これにより、最小合計送料と各段階で発生する合計送料が得られます。


P1からE1に、I1からD1に何かが出荷された場合、合計コストは2,769ドルになりますか?これらのオプションすべてを考えて、最も安価なルートを見つけたいですか?それは一度きりのものですか、実際に利用可能な特定の時間に最も安価なオプションを見つけるために使用されているトラック/列車/ボートの数を追跡するなど、もっと複雑な方法をしたいですか?
エンジニアトースト

@EngineerToastコンテナとコストを追跡したい。
ダークロードアキレス

読み直し、コメントに基づいて、私の理解はこれです:ソルバーアドインを使用して、各コンテナがヨーロッパから複数の目的地の1つに行くのに毎月かかるルートを明確に把握したいと考えています。各宛先は、毎月一定数のコンテナを受け取りたいと考えており、すべての貨物の総コストを最小限に抑えたいと考えていますか?
エンジニアトースト

回答:


0

以下は、ソルバーの問題を設定する例です。あなたはそれをよりコンパクトにすることができるかもしれませんが、私がそれを設定する方法は問題を診断するのが簡単です。

  1. [データ]タブで元のデータを使用します。
  2. 「方程式」という新しいタブを作成して、ソルバー問題を設定します。
  3. 列AからDは、可能なすべてのルートの組み合わせを設定するために使用されます。たとえば、行1はヘッダーです。行2はE1、P1、I1、D1です。行2はE1、P1、I1、D2です。等
  4. 列EからGは、ヨーロッパから米国の港、米国の港から内陸の港、および内陸の港から流通センターに関連するコストです。これは、VLOOKUPおよびMATCHを使用して入力されます。E2で例えばです=VLOOKUP(A2,Data!$A$3:$E$5,MATCH(B2,Data!$A$2:$E$2,0),FALSE)。F2です=VLOOKUP(B2,Data!$A$11:$D$14,MATCH(C2,Data!$A$10:$D$10,0),FALSE)。G2です=VLOOKUP(C2,Data!$A$20:$F$22,MATCH(D2,Data!$A$19:$F$19,0),FALSE)。これらはすべて記入されています。
  5. 列Hは、総単価です。実行不可能なルートを明確にするために、それらの合計コストを1,000,000に設定します。たとえば、H2は=IF(OR(E2=0,F2=0,G2=0),1000000,SUM(E2:G2))です。これは埋められます。
  6. 列Iは、そのルートを移動するユニット(コンテナ)の数です。この列はソルバーによって操作されます。すべての行を1で初期化しました。
  7. 列Jは、ルートの総コストです。たとえば、J2が=H2*I2満たされています。
  8. 同じタブに目的関数と制約を含む別のテーブルが作成されます。L1からO19までです。ここでの計算の例をいくつか示します。nUnitsは前のテーブルの合計です。したがって、E1からのコンテナー=SUMIFS($I$2:$I$181,$A$2:$A$181,L2)の数は=SUMIFS($I$2:$I$181,$B$2:$B$181,L5)、P1からのコンテナーの数はなどです。maxUnitsは[データ]タブから抽出されるため、E1から=VLOOKUP(L2,Data!$A$3:$F$5,6,FALSE)の最大コンテナは=HLOOKUP(L9,Data!$B$10:$D$15,6,FALSE)、I1からの最大コンテナはなどです。同様に、需要単位は[データ]タブから抽出されます。
  9. 実行不可能なルートが選択されないように、追加の制約を追加しました。
  10. 目的は、列Jの合計である総コストです。

以下は、ソルバーを実行する前の方程式タブのスクリーンキャプチャです。複数の行が非表示になっています。

ここに画像の説明を入力してください

ソルバーのセットアップは次のとおりです。

  1. 目標を設定:は $M$19
  2. To:はMin
  3. 可変セルを変更することにより: $I$2:$I$181
  4. 制約のない変数を非負にするの選択を解除します(これは制約で処理されます)
  5. 解法を選択:は進化的です。整数の制約を処理する場合、進化は他の方法よりもはるかに高速です。
  6. 制約の対象:多くの...
    • $I$2:$I$181 = integer -整数個のコンテナが必要です
    • $I$2:$I$181 >= 0 -マイナスのコストは発生しません
    • $M$2 <= $N$2行ごとに複製$M$11 <=$N$11-コンテナの最大数に違反しない
    • $M$12 = $O$12行ごとに複製$M$16 = $O$16-要求を満たす
    • $M$17 = $N$17 -実行不可能なオプションを使用しないでください

以下は、[ソルバーパラメーター]ダイアログボックスのスクリーンショットです...

ここに画像の説明を入力してください

このセットアップでは、すべての需要が満たされ、制約に違反することなく、合計コストが1,661,119.00ドルになります。以下は、制約テーブルのスクリーンショットです...

ここに画像の説明を入力してください

以下は、すべてのゼロルートが除外されたコストテーブルのスクリーンショットです...

ここに画像の説明を入力してください


この解決策を確認できませんでした。今週試してみます。おかげで
ダークロードアキレス

0

1回限りの回答が必要な場合、最も安価なルートはE2 > P4 > I2 > D21,452ドルです。

私が使用した方法はエレガントではありませんでした。可能なすべてのオプションの表を作成し、使用INDEXMATCHて、旅行の各区間のコストを検索し、合計コストの昇順でソートしました。シートは次のようになります。

スプレッドシート

左側のデータは、スプレッドシートからコピーしたものです。右側の表は私が作成したものです。E、P、I、およびDの各フィールドについて、グループに手動で入力しました。D1、D2、D3、D4、D5。これらの5つをコピーして、たくさん貼り付けます。I1、Dのセットのコピーダウン、I2、Dのセットのコピーダウンなど、テーブルがいっぱいになるまで。フィールドの$ EPのために、私は組み合わせINDEXMATCHP(何でも)にE(何でも)から旅行の費用をルックアップします。

=1/(1/INDEX($B$3:$E$5,MATCH([@E],$A$3:$A$5,0),MATCH([@P],$B$2:$E$2,0)))

INDEX配列を受け取り、その配列内のどこかからセルを返します。必要な行をMATCH見つけるために、E値が範囲内のどこにあるかを見つけていましたA3:A5。列を見つけるために、Pの値を探しましたB2:B4。それは私にEからPに行くコストを与えました。1/(1/...)旅行の区間がゼロの場合、それが利用できないことを示すエラーを返すように、全体にラッパーを追加しました。

次に、その式をフィールド$ PIおよび$ IDにコピーし、それぞれを調整して正しい範囲を参照しました。最後に、[総コスト]フィールドは、これら3つのレッグを単純に加算しました。昇順で並べ替えて、最も安いルートを見つけました。すべてのエラー(利用できないルートを使用するもの)は、一番下に送信されました。


現在利用可能なものに基づいて最も安いルートを選択できるように、旅行の各区間で現在輸送中の交通の数を追跡する継続的なシステムが必要な場合は、データベースソリューションをご覧ください。または、ソートされたリストを使用して、最初から始めて、各区間が現在利用可能なルートを見つけるまで下に向かって作業することもできます。


コンテナの数を考慮しましたか?
ダークロードアキレス

これでExcelソルバーを使用するアイデアはありますか?
ダークロードアキレス

@DarklordAchillesこれを実行中の操作にしたい場合、コンテナの可用性に基づいて現在最も安い利用可能なルートを教えてもらうことができます。
エンジニアトースト

私もデータベースソリューションが好きです。しかし、この課題はソルバーを学ぶことであり、それを使用してこれらの多くのレベルを解決する方法を見つけることができません。
ダークロードアキレス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.