2

私は現在、タイプ 2 (SOS2) の特別な順序セットを利用できる MIP 問題に取り組んでいます。

私の問題は、そのようなセットを完全に理解していないことです。この理由は、SOS2 の変数に割り当てなければならない重み付けのためです。

正確に何を割り当てればよいかわかりません。私のセットには非常に明確な順序がありますが、重み付けがどうあるべきかわからず、1,2,3 ... n を割り当てるだけでは正しくないと思いますか?

私の質問は、誰かが特別な順序付けられたセットの変数の重みと、それらに割り当てられるべき値を説明してもらえますか?

4

1 に答える 1

1

まず、順序を定義します。特に SOS2 セットには、隣接変数の概念があります。SOS2 セットでは、2 つの隣接変数のみが非負になる可能性があります。一部のソルバーは、分岐の決定に重みも使用します。これは、 のような x 値がある場合に便利です(1,2,3,10000)。そのため、ソルバーのドキュメントを参照してください。一般に、sos の重みは一意である必要があります。を使用する(1,2,3,...)ことは多くの場合、適切なデフォルトです。それ以外の場合は、x 値などを使用します (y 軸に平行なセグメントがない場合)。

多くの場合、バイナリ変数を使用した定式化は SOS の定式化よりも優れていることに注意してください (これは特に、バイナリ変数を使用した定式化にスマート カットを適用できるハイエンド ソルバーの場合です)。一部のソルバーは、バイナリ変数を使用して一部の SOS セットを形式に再定式化することさえ自動的に試みます。

于 2016-08-19T13:19:27.067 に答える