私はバイナリ線形計画問題に取り組んでいます。
私はコンピューター言語にあまり詳しくありませんが (Java と C++ を数か月学んだだけです)、問題が非常に複雑なので、とにかくコンピューターを使用する必要があるかもしれません。
最初のステップは、行列 M (少なくとも 8 X 8) のすべてのエントリに対して変数 m_ij を宣言することです。次に、行列の各要素の対応する値をこれらの変数のそれぞれに割り当てます。
次に、m_ij の値が 0 でない場合は常に、x_ij1、x_ij2、x_ij3、x_ij4、および x_ij5 の他の変数セットを生成します。x_ijk 変数の値は 0 または 1 のいずれかであり、値を割り当てる必要はありません。 x_ijk 変数。
おそらく最も簡単な方法は、各変数に値を宣言して割り当てることです。
int* m_11 = 5, int* m_12 = 2, int* m_13 = 0, ... int* m_1n = 1
int* m_21 = 3, int* m_12 = 1, int* m_13 = 2, ... int* m_2n = 3
次に、値が 0 でない変数を選択し、それに応じて x_ij1 ~ x_ij5 を宣言します。
しかし、これは大変な作業になる可能性があります。特に、この問題ではさまざまな行列を検討する必要があるためです。
これを自動的に行う方法はありますか?
私は Java と C++ を少し知っており、C++ で lp_solve パッケージを使用する (2 進整数線形プログラムの問題を解決する) ことを検討していますが、これが簡単にできるのであれば、他の言語やプログラムを使用したいと思っています。
これを行うには何らかの方法があるはずです (おそらくループを使用すると思いますか?)。これは非常に単純な作業ですが、プログラミング言語があまりないのでわかりません。
私のコホートの 1 人が、必要な条件を満たすランダムなマトリックスを生成するプログラムを作成したので、そのマトリックスを入力として使用できれば理想的かもしれませんが、今のところこれを行う方法は何でもかまいません。
たとえば、マトリックス エントリを Excel ファイルのセルに配置し、それを C++ にインポートして、変数を自動的に生成し、それらに値を割り当てるなど、MS Excel でそれを行う方法がある場合、これによりタスクが大幅に簡素化されます。対処!