問題タブ [drools-planner]

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.

0 投票する
1 に答える
220 参照

drools - Are "swap move factories" worth the effort?

I noticed that for problems such as Cloudbalancing, move factories exist to generate moves and swaps. A "move move" transfers a cloud process from one computer to another. A "swap move" swaps any two processes from their respective computers.

I am developing a timetabling application.

  1. A subjectTeacherHour (a combination of subject and teacher) have only a subset of Periods to which they may be assigned. If Jane teaches 6 hours at a class, there are 6 subjectTeacherHours each which have to be allocated a Period, from a possible 30 Periods of that class ;unlike the cloudbalance example, where a process can move to any computer.
  2. Only one subjectTeacherHour may be allocated a Period (naturally).

It tries to place subjectTeacherHour to eligible Periods , till an optimal combination is found.


Pros

The manual seems to recommend it.

...However, as the traveling tournament example proves, if you can remove a hard constraint by using a certain set of big moves, you can win performance and scalability...

...The `[version with big moves] evaluates a lot less unfeasible solutions, which enables it to outperform and outscale the simple version....

...It's generally a good idea to use several selectors, mixing fine grained moves and course grained moves:...

While only one subjectTeacher may be allocated to Period, the solver must temporarily break such a constraint to discover that swapping two certain Period allocations lead to a better solution. A swap move "removes this brick wall" between those two states.

So a swap move can help lead to better solutions much faster.

Cons

A subjectTeacher have only a subset of Periods to which they may be assigned. So finding intersecting (common) hours between any two subjectTeachers is a bit tough (but doable in an elegant way: Good algorithm/technique to find overlapping values from objects' properties? ) .

Will it only give me only small gains in time and optimality?

I am also worried about crazy interactions having two kinds of moves may cause, leading to getting stuck at a bad solution.

0 投票する
1 に答える
662 参照

drools - 'not'キーワードの概念的な意味; オブジェクト間の評価

DroolsPlannerプロジェクトでBucketTotal最小のオブジェクトを見つけようとしています。totalこれをサンプルコードから採用しました。

私の推論では、「BucketTotalオブジェクトを検索して、より大きいオブジェクトが存在$bしないようにする」ことを意味していました。BucketTotaltotal total$b

結局のところ、それは反対の意味でした(そして私はそれを修正しました)。


Droolsがそのステートメントを見つける理由を説明してください$b

0 投票する
1 に答える
2821 参照

drools - (タグの)リストを別のリストと照合し、一般的な要素の存在を検出する

私の要件はタグを一致させることです。この例では、この特定のはに割り当てられたをHourConstraint チェックします。TeacherHourHour(23)

具体的にはTeacherHour.attributes["tags"]、値をチェックし、["asst_ct","teacher_john_smith"]少なくとも1つの一致、この場合は2つ("asst_ct"との両方"teacher_john_smith")を検出します。


質問: 2つのリスト間の共通要素の存在(trueまたはfalse)を検出するにはどうすればよいですか?

Drools ExpertにはとがmemberOfありますcontainsが、スカラーとコレクションをチェックします。コレクションとコレクションをチェックすることはありません。

私は2つの潜在的な方法を見ています:

  1. 関数を導入し、boolean isIntersecting(list,list)それを真実のチェックに使用するようにDroolsに指示します
  2. TeacherHour.attributes[]リストの代わりに文字列として、およびHourConstraint.valueslistそのリストに一致する正規表現として実装します
0 投票する
1 に答える
345 参照

drools-planner - 初期化されていない計画値 [エラー]

プランニング値が初期化されていないプランニング エンティティをソリューションに設定することはできますか?

可能であれば、どのように?:)

助けてください:)

Null 以外の計画変数を使用してコードを実行するとすべて正常に動作しますが、計画変数を設定せずに実行すると [ Exception in thread "main" java.lang.NullPointerException]があります。

ここに私のコードがあります:

// manList.add(null); // womanList.add(null);

// m.setMan(null); // m.setWoman(null); //m.setMan(manList.get(i)); //m.setWoman(womanList.get((i+j) % 10));

`

sovlerConfig-xml

0 投票する
1 に答える
241 参照

jboss - jboss で drools planner プロジェクトを実行するには?

Drools Planner を使用して教員のスケジュールを生成するデスクトップ アプリケーションがあります。今、私はそれをサーバーに置きたいと思っています。そのため、サーバー上でメソッドを呼び出してスケジュールを作成すると、ClassNotFound Exception が発生します。

Drools ライブラリを EAR に追加するにはどうすればよいですか? または、いくつかの瓶を含める必要がありますか?

前もって感謝します、

ダルコ

0 投票する
1 に答える
326 参照

drools - 3つの異なるオブジェクトのセットを選択する

Drools Plannerはこれを使用して、2つの異なるオブジェクトを選択し、特定のオブジェクトのペアに対してルールが2回実行されないようにしました。o1とが一致した場合、とo2の2回ではなく、1回だけ発生(o1,o2)(o2,01)ます。

3つの異なるオブジェクトのセットを選択するにはどうすればよいですか?そのための良い選択基準は何ですか?

0 投票する
1 に答える
202 参照

drools - IntConstraintOccurrenceに負の値を指定できますか?

アプリケーションで正と負の両方のソフト制約を有効にしたい。+2は重み2の正の制約を意味し、-1は重み1の負の制約を意味します。負の値をaとして指定してNEGATIVE_SOFT、それがのソフト制約であることを意味しますか?


NEGATIVE_SOFTそれ以外の場合、値にPOSITIVE_SOFT応じて挿入する個別のルールを使用せずに、正と負のソフト制約を有効に設定するにはどうすればよいですか?

0 投票する
1 に答える
115 参照

drools - y個の制約のうちx個を満たすため

(計画エンティティ)からに1対1の一致を行うタイムテーブルプログラムを作成しています。私がする必要がある場合があります:「y期間の間、少なくともxは一致しなければなりませんSubjectTeacherPeriodPeriodSubjectTeacherPeriodmatch_condition

たとえば、3つの特定の期間を制限したいのですが、そのうちの少なくとも2つは、に一致する教師によって教えられasst profます。

このような制約を保持するデータ構造は次のとおりです。

SubjectTeacherPeriodPeriodもちろん、


リストPeriodから個々のsを評価して、それらに割り当てられたx個のsが一致条件を満たしているかどうかを確認するルールを作成するにはどうすればよいですか?SubjectTeacherPeriodPeriod

クラスを悪い形式で定義している場合は、修正してください。

例として、一致を判断するために評価されるステートメントを次に示します。eval(matches($stp_attrib,$match_condition))


明確にされている以上に混乱している場合は、擬似コードを使用して申し訳ありません。はSomeType実際にはList<String>であるため、一致条件はCollections.disjoint

0 投票する
1 に答える
103 参照

drools - 2 つの計画エンティティを値に同期する方法

2 つの計画エンティティ間で計画値を同期したいと考えています。SubjecTeacherPeriodこの場合、可能な値の範囲がばらばらであっても、互いに「一致」する 2 つの期間を選択したいと考えています。

たとえば、とはどちらも「月曜日の最初の時間」であるため互換性がありますPeriod。と についても同様です。11062107

s2直後に割り当てられるプランニングエンティティの難易度を設定しs1ました(ログを見ました)。しかし、それらには互換性のない値が割り当てられています。また、システムはソルバー アクションの最後にこのようなエラーから回復することはありません。

それらを同期させるにはどうすればよいですか?


「互換性」と「一致」について言及した場合、Period2 つのフィールド (曜日と曜日の順序) が等しい を意味します。各クラス (およびSubjectTeacherPeriodそのクラスで可能な各ピリオド) には、個別Periodの があります。

0 投票する
1 に答える
362 参照

drools - ハード (またはソフト) 制約を破る

質問が言うように。後

違反した特定のルール (値を含む) を確認したい。ソリューションからそれらを取得するにはどうすればよいですか?