問題タブ [glpk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - MILP型の問題を解決するGLPK-Java
GLPK-Java ライブラリの使用に関するドキュメントがあまりないことは既に知っていますが、とにかく質問します... (別のソルバーは使用できません)
スケジューリングに関する基本的な問題があります。いくつかの基本的な制約がある学期のコースへの学生。
問題の例は次のとおりです。
CPLEX 形式で与えられた例は次のようになります。
glpsol コマンドを使用してソルバーを介してこれを実行し、解決することができますが、API を使用してこれを記述する必要があります。私は線形計画法を実際に扱ったことがなく、ドキュメントには何かが望まれています。これはせいぜい単純ですが、実際の問題は、18 コースのうち 12 コースを受講しなければならない 12 学期にわたる 600 人の学生を解決することであり、特定のクラスは特定の学期のみ利用可能であり、一部のコースには前提条件があります。
APIを使用して単純化された問題をコーディング例に変換するのに助けが必要です。非常に単純な問題が API 呼び出しにどのように対応するかがわかれば、より複雑な問題のアプリケーションを作成する方法を理解できると思います。
ライブラリの例から、列を設定していることがわかります。この場合は学期で、行は生徒です。
この時点で、行の制約を設定する必要があると思いますが、途方に暮れています。どんな方向性でも大歓迎です。
ampl - GLPK を使用して TSP で新しい制約を作成する方法
この例のTSPを使用して、ツアーを計算しました。
しかし、新しい制約を作成するにはどうすればよいでしょうか?
簡単な例を想像してみてください。私は 5 つの都市を持っていますが、すべての都市に道路がないため、新しい制限のある道路セクションなしで削除したいのですが、GLPK でどのように行うのですか?
python - igraph は GLPK を使用できません
igraphモジュールを使用してoptimal_modularityを実行するためのpythonスクリプトを作成しました。この関数はGLPKライブラリを使用しますが、python-glpkと実質的にすべてのglpk関連パッケージをインストールした後でもこのエラーが発生します:
これはスクリプトです:
linear-programming - meth=GLP_PRIMAL と meth=GLP_DUALP を使用した GLPK シンプレックスの動作
目的関数のない線形計画があります。だから私はその実現可能性をテストしたいだけです。それを行うために、シンプレックスにGLPK APIを使用しています。デフォルトの方法 (meth=GLP_PRIMAL) でシンプレックスを実行すると、ソルバーは 100000 回の反復 (設定した制限) で収束しません。ただし、メソッド GLP_DUALP を使用すると、数回繰り返した後、「警告: 二重縮退; 主シンプレックスへの切り替え」というメッセージが表示され、妥当な回数の繰り返しで収束します。
したがって、私の質問は、最終的に両方のケースで主シンプレックスを使用する場合、最初のケースで収束しないのはなぜですか。何が起こっているのでしょう。
前もって感謝します。
ampl - MathProg で LP が実行不可能な場合、まったく異なるものを出力します
私は MathProg (AMPL のサブセットに似た GLPK ライブラリに固有の言語) を使用して、グラフの頂点のトポロジカル ランキングを見つけています。これは、線形計画法クラスの課題です。簡単な線形プログラムを定式化し、GLPK を使用してそれを解決できることを確認するための入門演習です。
特定のグラフの MathProg で線形プログラムを生成する Perl スクリプトを作成しました。を介して変数の値 (頂点のランク) を出力しprintf
ます。実現可能であれば、それがまさに私が望んでいることです。それ以外の場合はすべてゼロを出力しますが、Infeasible, has cycles or loops.
.
私はハッキーな方法でそれを行うことができました(以下を参照)。実現可能性の条件を繰り返さずに、よりエレガントに行うにはどうすればよいですか? 解決されている問題に依存しない実行不可能性を検出する方法はありますか?
宣言しようとしましparam Feasible binary := (exists{i in V} v[i] >= 1) or card(E) = 0;
たが、GLPK は で拒否しましたModel processing error
。前に宣言したときはsolve
と言いoperand preceding >= has invalid type
、後で宣言したときは と言いexpression following := has invalid type
ました。一般的なプログラミング言語の変数のようなものを探していました。
java - Glpk Java および .mod ファイル
私は .mod ファイルを持っていて、それを Java で実行できます (netbeans を使用)。このファイルは別のファイル .dat からデータを取得します。これは、開発者が GUSEK を使用していたためです。Javaで実装する必要がありますが、.modファイルのK定数にデータを入れる方法がわかりません。
方法は関係ありません。データベース クエリまたはファイルの読み取りを使用できます。
数学プログラミングについては何も知りません。既に作成された glpk 関数に値を追加するだけです。
.mod 関数は次のとおりです。
そして、ここにJavaコードがあります:
そして、私はコンソールでこれを取得しています:
誰かが助けてくれることを願っています、ありがとう。