問題タブ [optaplanner]
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 - OptaPlanner タスク スケジューリングでのローカル最適化の回避
私は基本的に、柔軟なタスクのタイムライン(特定の期間を持つ) を作成しようとしています。たとえば、タスク B はタスク B の 5 分から 10 分後にする必要があります。また、タスクは '重複することはありません。人は常に 1 つのことにしか取り組めないからです。
後で組み込む必要があるかもしれないいくつかの追加機能もあります。
- タスクの期間は、特定の範囲で柔軟になる可能性があります
- 特定のタスクが特定の時点にロックされる場合があります
- 2 つのタスクを同時に実行できるように、新しい人を追加することができます
私の問題は、私のアプローチが簡単に局所最適値に行き詰ってしまうことです。
私が現在行っていることは、範囲外のリンクの量とそれらが重複するかどうかという厳しい制約を設定して、タスクの開始時間を最適化することです。これはうまく機能しているようで、ほとんどの場合、厳しい制約を破らない解決策がすぐに見つかります。追加のソフト制約は、プロセス全体の所要時間を最小限に抑えようとする必要があります。たとえば、タスク B と C の間のリンクが 20 ~ 100 分である場合、ハードスコアはリンクが 20 分であろうと 100 分であろうと関係ありません。しかし、一般的に 20 は 100 よりも優れています。しかし、タスクの複雑なツリーのような依存関係を扱う場合は、80 分のリンクを使用してそのギャップに他のタスクを配置し、3 分の 1 後のタスクをより早く開始できるようにする方がよい場合があります。そのため、リンク長を最小限に抑えるだけでは効果的なアプローチではありません。しかし、問題は、リンクが範囲内にあると、後でより良い解決策にたどり着くためにその範囲外に移動するインセンティブがないことです。私はローカルオプティマで立ち往生しています。
したがって、私は現在、この問題を解決する方法を考えています.私が考えていて、フィードバックを期待しているアプローチは、2つのリンクされたタスクを移動する新しい CompositeMove を作成することです. これにより状況は改善されますが、3 つ以上のタスクが密接にリンクされるとすぐに同じ状況になるため、うまくスケーリングできません。
私が考えているもう 1 つのことは、タスクを取り、リンクを伸ばしてタスクを隙間に入れる動きを実装しようとすることです。私はこれをきちんと考えていませんでした。
また、さまざまなローカル検索アプローチをいじりましたが、これもあまり役に立ちませんでした。しかし、とにかく、彼らはここで本当に助けることはできないと思います.
OptaPlanner の配車ルートと顧客訪問の関係も調べましたが、問題を理解するのには役立ちましたが、実際には解決策にはなりませんでした。
groovy - groovy で Optaplanner を使用すると XStream エラーが発生する
Drool's Cookbook の第 8 章にある単純な Drools Planner の例を、groovy を使用して OptaPlanner 6.0.1.Final に適合させようとしています (すでに maven で動作する Java バージョンがあります)。クラスとテストは 1 つの groovy スクリプトと同じフォルダーは、solverConfig.xml と solverRules.drl です。回避するには、XmlSolverFactory をどのように構成する必要がありますか。
私は使用しています
スクリプトでこの依存関係を使用します。
optaplanner - Optaplanner 入力ファイル
VRP の問題に関するビジネス ケースに Optaplanner を使用しようとしています。私はプロのプログラマーではないので、情報をソフトウェアに代入する問題を扱います。例のファイルは .vrp ファイルであるため、それらを変更する方法を見つけることができませんでした。txt 形式のファイルがありますが、その使用方法がわかりません。txt ファイルを vrp に変換する簡単な方法があることを願っています。
事前にどうもありがとうございました。
マイケル
optaplanner - optaplanner: 配車ルートを変更して顧客にサービスを提供しないようにする
配車ルートの問題では、すべての顧客にサービスを提供する必要があるという制約を取り除きたいのですが、サービスを提供した人には賞品を追加したいと考えています。
v_i が顧客 c_i のみにサービスを提供できるように、顧客 c_i ごとに仮想車両 v_i を追加したいと考えています。したがって、N 人の顧客がいる場合、M 台の実際の車両と N 台の仮想車両があります。
私の疑問は次のとおりです: Customer クラスの valueRangeProviderRefs を設定して、クライアント c_j が車両 v_i によって提供されるのを回避するにはどうすればよいですか?
drools - Optaplanner : スコア計算にループを使用していますか?
タスクスケジューリングの問題に取り組んでいます。いつでも、プロセス全体が利用可能なリソースをそれ以上使用しないようにするルールを実装したいと思います。これを行うには、合計時間プロセスの各秒をループして、次のように各秒で使用されるリソースの合計を計算することを考えました。
「$sec」はチェックする秒を表します。
drools を使用して毎秒ループするにはどうすればよいですか?
これに相当するものはありますか: