4

タイムテーブルアプリケーションを開発しています。遺伝的アルゴリズムとシミュレーテッドアニーリングの相対的な利点は何ですか?


私の状況に固有のポイントは次のとおりです。

  1. 一度に最大(3人の教師×6時間)×(3クラス×週35時間労働)を割り当て、タイムテーブルを繰り返し作成しています。

  2. 不可能な状態が発生し、アプリケーションがスタックすることなく、不可能なタイムテーブルを通知する必要があります。このアプリケーションは限界に達すると予想されます。

  3. 一定時間で結果を返すか、失敗したことを報告する必要があります。

4

1 に答える 1

6

まず、それはかなり小さなソリューションスペースのように思われると言わざるを得ません。ブルートフォースが最も簡単な方法ではないと確信していますか?

次に、一定時間内に「かなり良い」結果が必要である、またはアルゴリズムがO(1)である必要があると言うことを意味しますか?それが不可能だとは言いませんが...まあ、それは不可能だと確信しています。

特定の点で、GAとSAの主な違いは、SAは本質的に山登りアルゴリズムであり、解空間の最後の点から「外側」を検索しますが、GAは確率的であり、解空間内の超平面を検索します。

あなたは、SAがあなたの問題により適していると私に思わせる2つのことを言います:「反復的に構築する」と「不可能な状態」。GAは、ソリューションスペース内の超平面全体で「かなり良い」ソリューションを再結合するため、ソリューションスペース内のデッドゾーンを「再発見」する傾向があります。かなり良いソリューションからより良いソリューションを繰り返し構築できると確信している場合は、山登り法の領域にいるので、SAの方が適している可能性があります。

非常に一般的に、GAの相対的な利点は、非常に大量のソリューションスペースをすばやく処理できることですが、GAは、そのソリューションスペース内に簡単にエンコードされた「優れたアイデア」があることに依存しています。SAの相対的な利点は、初期ソリューションの「周囲」のローカルソリューション空間を検索することです。これにより、ローカルの改善が効率的に検出される傾向があります。欠点は、SAがランダムにシードされるため、大きなソリューションスペースを探索するのに効率的ではないことです。

于 2011-12-30T01:58:18.947 に答える