私は現在、サーバーと対話するエージェントを作成する必要がある Java のプロジェクトに取り組んでいます。
50 ミリ秒ごとに、サーバーは System.out に最後に出力したものを受け取り、System.in プリントストリームを介して「状態」として新しい行のセットを送信し、次のメッセージを分析して System.out に送信します。
また、サーバーが私から複数の出力を受信した場合、最新のもののみが考慮されます。
..
私の質問については:
私のプログラムは最初にツリーを構築し、各リーフ ノードを分析して最適なものを確認し、次の入力を待ちましたが、より深いツリー検索を再帰的に実行して、出力を「より良く」することができます (何度も何度も)より良い結果を返し続けるために)。
これと、サーバーが複数の出力を受信した場合、最新のもののみを取得するという事実を使用して、各レベルを実行し、結果を出力して次のレベルを開始できます。しかし、ここで私の問題が発生します...
次の入力を受け取ることになっている間、複雑なアルゴリズムで立ち往生することはできません。そのため、System.in を介して何かを受け取ったときに他のことをキャンセルしてから、関数の先頭に戻り、新しい入力セットで検索を再開する方法があるかどうか疑問に思っていました (そしてすすぎと繰り返し) ..)
これがすべて理にかなっているといいのですが、
ありがとうございます