問題タブ [linear-programming]
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.
math - 複雑な相互関係のセットをプログラムする方法は?
まず、タイトルについて申し訳ありませんが、それは私が思いついた最高のものでした。
つまり、Aが上がると、Bが下がると、Cが上がるので、DとEが下がる可能性が高くなり、Fが真上に送られる、というようなプログラムです。
線形計画法を調べるように言われたのですが、答えを見つけたくないので(「xを解いて何にでも最適な方法を見つける」)、値を変更したいので、正しく聞こえません。 1つのメトリックを確認し、他の接続されたメトリック全体の波及効果を確認します。
たとえば、私が工場を持っていて、あるセクターの労働者の昇給が与える影響を見積もりたいとします。10%引き上げると、セクターの士気がX、セクターの生産性がY、コストがZ増加します。これにより、Qの利益を維持したい場合は、製品の価格をPに引き上げることになります。いくつかの店から出て、実際にRによって利益を減らします。
現在、2年間で20%の引き上げは、セクターの士気をAで、セクターの生産性をBで、コストをCで増加させますが、他のセクターの士気をDで低下させます。
私はあなたがその考えを得ることができると思います。私が望んでいるのは、関連する入力に基づいて、すべてを実現する基盤となるネットワークをプログラムする方法を理解することです(たとえば、セクターの生産性を向上させたい場合、何を変更する必要がありますか?生産性の新しい値を入力し、適切な接続値が自動的に更新されるのを確認してください)。
これが実際に線形計画法の領域である場合、誰かがそのモデルを中心とした例や説明を提供できますか?私はそれを見るのに苦労しています。
どうもありがとう。
linear-programming - 線形計画法による列と行のクラスターの識別
このタイプのマイニングを行うための良い方法はありますか?線形計画法を使用して解決できます。しかし、私はこれに完全に慣れておらず、これを最小化として組み立てる最良の方法を知りません。
次のアプローチで大丈夫ですか?
- 各行と列に連続変数を設定します。これは、その行/列のすべてのメンバーがまたがる「長さ」です。
- 行または列のグループのメンバーであるかどうかを示す、各「ポイント」(各黒い点)の変数を用意します
- 最初の変数の合計を最小化する
そして、これを行うためのより良い方法はありますか?どういうわけかこれを純粋な制約問題として(つまり最小化なしで)フレーム化することは可能ですか?用語は正しいですか?ありがとう!
matlab - MATLABのLPソルバーの感度分析
私が理解している限り、CPLEX、LP_solve、GLPKは、他のLPソルバーの中でも特に感度分析を提供します。
上記の3つのソルバーと、次の2つのMATLABラッパーがマシンにインストールされています。
- CPLEX for MATLAB API(CPLEX用)
- YALMIP(複数のソルバー用の一般的なMATLABラッパー)
これら2つのラッパーのドキュメントを調べましたが、それらから感度分析を実行する方法を見つけることができませんでした。彼らはそれをサポートしていますか?そうでない場合、感度分析のためにMATLABサポートを提供するLPソルバーはありますか?
感度分析とはどういう意味ですか?
コスト関数と制約に関する感度分析を意味します。概念的に言えば、感度分析は次の質問に対処しようとします。
問題のある側面が変更された場合、ソリューションはどのように変化しますか?
例えば:
変数の係数が
j
解の最適性に影響を与えることなく取ることができる値の範囲はどれくらいですか?
具体的には、 CPLEXが感度分析のために提供するJava、C ++、およびCAPIのリストを示します。
LP_solveが提供する感度分析に関する情報は次のとおりです。ここで「感度」を検索すると、LP_solveのメインリファレンスガイド内にある前のリンクのヘルプテキストを見つけることができます。
algorithm - 整数計画法で最小化を行うためのアルゴリズム
整数計画法で最小化を行うことは非常に複雑な問題であることを理解しています。しかし、何がこの問題をそれほど難しくしているのでしょうか?
それを解決するためのアルゴリズムを(試みて)書くとしたら、何を考慮に入れる必要がありますか?私はそれを解決するための分枝限定法に精通しているだけであり、この技術をプログラムで適用しようとすると、どのような障害に直面するのだろうかと思っています。
java - Gurobi と Java と空のソリューション
ILPの問題を解決するためにJavaでGurobiを使用しています。すべてを設定し、プログラムを開始します。しかし、Gurobi は私の問題を解決しようとさえせず、空のソリューションにすべての変数を 0 に設定します。
緩和されたステップの間、Gurobi は関数の最小値が -246 であることを示しています。これは、gurobi が最適解が 0 であることを示す次のステップとは対照的です。
Gurobi の出力は次のとおりです。
mathematical-optimization - CPLEXの実現可能性の問題
CPLEXの一連の凸拘束の実現可能性の問題(実行可能点が存在するかどうか)を解決するためのAPIはありますか?
algorithm - 整数線形計画法に適した問題の例は何ですか?
私は常に、ビジネス上の問題を解決するためのソフトウェアを作成してきました。SOの投稿の1つを調べているときに、LIPについて出くわしました。私はそれをグーグルで検索しましたが、ビジネス上の問題を解決するためにそれをどのように使用できるかを関連付けることができません. 素人の言葉で理解するのを手伝ってくれる人がいれば感謝します。
linear-programming - 非最適解も返す整数計画ソフトウェアはありますか?
整数線形最適化問題があり、実行可能で優れたソリューションに興味があります。私の知る限り、たとえば、Gnu線形計画法キットは最適な解のみを返します(存在する場合)。これには無限の時間がかかり、私が探しているものとは異なります。最適なソリューションだけでなく、優れたソリューションにも満足しています。
したがって、たとえばしばらくして停止し、これまでに見つけた最良のソリューションを返すLPソルバーがその役割を果たします。
そのようなソフトウェアはありますか?そのソフトウェアがオープンソースであるか、少なくともビールのように無料であるなら、それは素晴らしいことです。
あるいは:通常整数LPの問題をスピードアップする他の方法はありますか?これは質問するのに適切な場所ですか?
optimization - Microsoft Solver Foundation 3.0 を使用したチーム ビルディングの最適化
私は学生プロジェクト チーム ビルディング アプリケーションに取り組んでいます。最適化には精通していますが、Microsoft Solver Foundation を使用したことはありません。制約を解決しましたが、ソルバー構文で目標を特定するのに問題があります。アプリケーションの基本的な概要は次のとおりです。
教授は、プロジェクトごとに特定のスキルを重視します。学生は自分の長所と短所をリストアップし、やりたいプロジェクトをランク付けします。プロジェクトには、3 ~ 5 人の学生が割り当てられている必要があります。各学生にプロジェクトを割り当てる必要があります。
- 主な目標は、満たされるスキル要件の数を最大化することです
- 第二の目標は、学生の好みを最大化することです
この混合整数問題のチュートリアルに基づいてSimplexSolver クラスをいじってみましたが、生徒の好みを問題なく最大化することができました。
プロジェクトのスキル要件ごとに行を追加し、そのスキルに対する各学生の強み/弱みの係数を設定し、そのプロジェクトのスキルの重みの下限を設定する方法を確認しました。ただし、これにより2つの問題が発生します。
- プロジェクトのスキル要件がすべて満たされるとは思えません。そのため、スキルの最小値を制約として設定するのではなく、意味するスキル要件の数を最大化するという目標を設定したいと考えています。チームが特定のスキルで 1 ポイント不足していたとしても、すべてのチームがそのスキルを弱点として挙げているよりはましです。
- プログラミングスキルの重みが 3のチームに 4 人の学生がいて、そのうち 3 人がプログラミングを強み (+1) としてリストし、もう 1 人の学生がプログラミングを弱点 (-1) としてリストしている場合、私のモデルは正しくありません。(1+1+1-1)<3 であるため、プログラミング要件が満たされていないことを示します。
誰にもアイデアはありますか?SimplexSolver はこの問題を解決する最善の方法ですか? Solution Foundation には、さまざまなソルバー/ツールが多数あるようです。私は Solution Foundation の Express バージョンを持っていますが、必要に応じて Academic Enterprise バージョンを手に入れることができるでしょう。
ありがとう - グレッグ
*最終的なアプリケーションでは、約 100 人の学生、20 ~ 30 のプロジェクト、および最大 30 の潜在的なスキル (プロジェクトごとに最大 5) のモデルを解決する必要があります。