ヒューリスティック アルゴリズムを使用して複雑な問題を解決する Web サービスをコーディングする必要があります。アルゴリズムは、POST リクエストで指定された時間が経過する限り実行されます (つまり、timeAllowance=60 を渡すと、ヒューリスティック アルゴリズムが 60 秒後に停止し、見つかった最適なソリューションが返されます)。
すべてのサーバー コアを活用するには、ヒューリスティック アルゴリズムを複数のスレッドで実行する必要があります。アルゴリズムの実行中、これらのメソッドは互いに「通信」する必要があります。各スレッドはヒューリスティック アルゴリズムを実行し、一定の時間が経過すると、スレッドは見つけたソリューションを通信します。許可された時間が経過していない場合は、新しいサイクルが別の初期母集団で実行されます。要約:
- 初期集団を生成する (ほとんどランダムに)
- ヒューリスティック アルゴリズム スレッドを起動し、それぞれが母集団を入力として受け取ります
- 一定の時間が経過したら、スレッドを終了し、スレッドによって検出された新しい集団を「コントローラー エンティティ」に通信します。
- ポイント 2 で起動されたスレッドの結果に基づいて、論理的な推論を行い、新しい母集団を生成します。
- 許可された時間が経過していない場合は、新しい集団でポイント 2 に戻ります。そうでなければやめる
私の質問は、Spring MVC を使用してコードをどのように構成しますか?
テストとして、サービス メソッドで 10 個のスレッドを起動し、コントローラーからそのメソッドを呼び出すことを試みました (サービスの自動配線)。スレッドが行っていることはすべて、60 秒間スリープすることです。HTTP リクエストがすべてのスレッドが終了するまで (つまり、約 60 秒) 待機することを期待していましたが、実際にはすぐに応答します。
どんな助けでも大歓迎です。
ありがとうございました!