2016-11-07 7 views
0

なぜコマンドクリップは

clips.eval("(set-strategy random)") 

が動作しないの?動作しない( "(設定-戦略ランダムに)")clips.eval 私は活性化できるルールが異なりますが、常に同じ順序で活性化されます。

答えて

0

これは、発生している次の2つのシナリオのあなたの説明から明らかではない。

  1. CLIPSJNIは、一度立ち上げました。複数の実行で同じ順序が生成されます。
  2. CLIPSJNIが複数回リリースされました。シングルランは、最後の の打ち上げと同じオーダーを生成します。

#1の場合、問題を再現するのに十分な情報を提供していません。 #2の場合、これは基本プログラミングガイドのセクション5.37からの関連情報です。

ランダム戦略はテストに役立ちます。このストラテジー は同じ顕著性を有するアクティベーションをランダムに発注するので、 のルールの実行順序がプログラムの振る舞いに影響を与えるかどうかを検出することが有用である。 ランダムな 戦略でプログラムを実行する前に、まずシード 関数を使用して乱数ジェネレータをシードします。プログラムの実行結果を複製するために必要な場合は、同じシード値を後で使用することができます( )。

#2のためにそう

、あなたのコードからこの呼び出しを行います。

clips.eval("(seed (integer (time)))");