問題タブ [operations-research]
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.
or-tools - Cp-Sat AddAllDifferent vs 制約の追加
親愛なる、
私は2つのブール決定変数を持つモデルを持っています.1つだけがti 1に等しくなることができます.
AddAllDifferent を使用した場合、または単純な制約 (ADD) x+y=1 を使用した場合、ソルバーは高速になりますか?
algorithm - ジョブのスケジューリングに使用した SA アルゴリズムを改善するにはどうすればよいですか?
コードは以上です。
仕事のスケジュールに問題があります。私のヒューリスティック アルゴリズムは、possible_solution マトリックスを使用して、各ジョブをラインに割り当てます。たとえば、6 番目のジョブには 140 の異なるオプションがあり、7 番目のジョブには possible_solution マトリックスに 30 の異なるオプションがあります。
シミュレーテッド アニーリングでは、反復ごとに、ソリューション ラインの 1 つを possible_solution マトリックスにランダムに使用します。ただし、GAMS/Cplex ソルバーと比較すると、解はせいぜい 50% に達します。
シミュレーテッド アニーリングを使用するために、ソリューション マトリックスからのランダムな選択を使用できますか? そして私が逃したものは何ですか?
algorithm - シミュレートされたアニーリングの隣人を生成する方法は?
私は 61 個のジョブを持っており、いくつかの制約の下でそれらの delay_ Savings を最大化したいと考えています。
アルゴリズムを実行すると、次のような結果が得られます。
これがアルゴリズムの初期解です。その後、どのようにアルゴリズムに進むべきですか?この結果をどこでどのように使用して、SA でより良いソリューションを実現するのでしょうか?
疑似コードを書いてください。疑似コードの提案で上記のアルゴリズムを「initial_algorithm」として定義できます。私は間違いなくそれをシミュレートされたアニーリングに変更して、隣人を構成してSAアルゴリズムに屈服させ、徐々により良い結果に到達することはできませんでした。
ランダムに作ったのですが、SAの手続きロジックとは少しかけ離れています。だから、ここにいます:)
Edit1:私はこのアルゴリズムを使用します:
各反復で currentSolution を生成し、getnewSolution を再実行します。何も取得せず、ランダムに動作します。私はそれがローカル検索の問題であることを知っています。ただし、GAMS/Cplex の結果では 80% に近づきます。
ただし、ランダム性は徐々に改善することを意味するものではありません。では、最初のアルゴリズムの結果を使用して、SA により良い解を得るにはどうすればよいでしょうか?
私は 30 のジョブを選択し、制約の下で delay_ Savings が変化する可能性がある下限と上限を決定しようとしました。SA への反復ごとに、これに隣接アルゴリズムを提供します。それは近隣ソリューションを提供しますか、それともシミュレーテッド アニーリングのプロセスについて何か不足していますか?
r - ompr MILPModel : 二項演算子への非数値引数
私は ompr::MIPModel の使用方法に精通していますが、MILPModel を使用してモデルのビルド速度を利用する方法を学ぼうとしています。私のモデルの簡略化されたバージョンは以下のとおりです。2 つの決定変数 x と y があり、2 進数で長さが同じです。すべての x 決定変数の合計とすべての y 決定変数の合計に制約があります。これまでのところ、MILPModel は非常にうまく機能しており、モデルを構築してすばやく解決することができます。
問題は、次の制約を使用しようとするときです。この制約の LHS は、バイナリ決定変数 x に同じ長さのデータフレームの数値列を掛けてから、行が x の長さに等しい行列を掛けます。y変数を使用したRHSの同様の話。次に、この制約を 20 回繰り返して、マトリックスのすべての列を表します。
MIPModel を使用して、これと同様の制約を何度も使用しましたが、これを試すと、エラー メッセージが表示されますnon-numeric argument to binary operator
。これは関数と関係があると思いますがcolwise
、ompr github サイトを読んだ後でも、これにアプローチする方法に慣れていません。助けてくれてありがとう。