指数時間アルゴリズムは一般的に避けるべきですが、時には必要になることも知っています。巡回セールスマンであるケース。本番ソフトウェアでこのようなアルゴリズムはどれくらい一般的ですか?これらのケースは一般的に必要ですか、それとも急ぎの仕事の結果ですか?私は、多くが良い発見的方法で解決できることを理解しています。できない人は通常何をしますか?
指数時間アルゴリズムは一般的に避けるべきですが、時には必要になることも知っています。巡回セールスマンであるケース。本番ソフトウェアでこのようなアルゴリズムはどれくらい一般的ですか?これらのケースは一般的に必要ですか、それとも急ぎの仕事の結果ですか?私は、多くが良い発見的方法で解決できることを理解しています。できない人は通常何をしますか?
回答:
ていないことを何かで行わ制作ソフトウェアが、上で制作ソフトウェアですフォーマル検証。おそらくほとんどの顧客ソフトウェアには採用されていませんが、組み込みシステムとドライバー、つまり正確性が重要な(そして扱いやすい)ハードウェアとソフトウェアのトラックを獲得しています。
実際に計算可能な検証の問題(バリア#1)は、多くの場合EXPTIME -hardであり、より幸運な場合はPSPACE -completeの問題(バリア#2)が発生します。どちらのクラスも、NP完全問題よりも難しい(疑われる)ため、比較が簡単です。二重指数問題も簡単に得られます。
これらの場合、明確な結果が必要なため、ヒューリスティックは(最終結果の意味で)カットしません。したがって、大きなマシンと時間が必要です。多くの場合、実行時間の短縮(エラー状態の検索時の巧妙な検索スペース探索)につながるヒューリスティック(代替選択の意味で)がありますが、最悪の場合は、待つことができます。または、ペンと紙の校正を行い、計算機で簡単にチェックできるようにします。
巡回セールスマン問題の例を取り上げましょう。私はそれに何度か取り組みました。
巡回セールスマンの問題の解決策を書いたが、いくつかのパラメーターを使用してチームにいたことが何度かあります。たとえば、それぞれが独自のスキルセットを備えた技術者とエンジニアのフリートを備えた店舗である可能性があります。宛先は、サービスリクエストの形式で毎日表示されます。すべてのプログラムは本番環境にありますが、元々それらを作成してから変更および保守が行われています。
これは彼らが働いた方法です。各エンジニアは、ハンドヘルドデバイスで毎日サービスするもののリストを受け取ります。各サービスタスクが終了したら、ケースをクローズする必要があります。除外されたケースは、顧客が何らかの不満を表明していたため、わずかに高い優先順位で翌日にスケジュールされるケースに参加します。エンジニアがケースに参加しない大きな理由がいくつかありました。交通問題が最も一般的でした。
彼らはどれくらい一般的ですか?少なくとも顧客からのアフターサービスリクエストの数と同じくらい一般的です。たとえば、アフターサービスがなければ、顧客を維持することは難しくなり、新しい顧客を獲得することは難しくなります。
アマゾンや他の書店などの多くのウェブベースのショップや他のそのようなショップがビジネスでうまくいっているので、旅行セールスマンは以前よりも一般的だと思います。また、教科書で教えられている巡回セールスマン問題には多くのバリエーションがあります。