異なる色の「アイテム」を保持するスタックと、同じ色の複数のアイテムを一度に処理できるマシンが与えられます。各ステップで、各スタックの最上部から1つのアイテムを削除してマシンに配置できます(そのため、マシンは1ステップで最大n個のアイテムを処理できます-そのためには、すべてのスタックに同じ色のアイテムが必要です上に)。目標は、すべてのアイテムを最小限の時間で処理することです。
入力例:
可能な解決策の1つは、貪欲なアルゴリズムです。各ステップで、できるだけ多くのアイテムを取り出し、それらをすべてマシンに詰め込みます。残念ながら、貪欲なアルゴリズムは最適ではありません。入力例に対して次のスケジュールが生成されます。
最適なスケジュールは次のとおりです。
何らかの形の状態空間検索を使用する予定ですが、より問題固有で効率的なアプローチがあるでしょうか?関連文献へのリンクは高く評価されています。
各ステップで、各スタックの一番上から1つのアイテムのみを取得できます(マシンに入れるアイテムはすべて同じ色である必要があります)。したがって、貪欲なアルゴリズムは最適ではないスケジュールを生成します(図2を参照)。
—
ミハイルグルシェンコフ
また、すべてのアイテムを順番に処理する必要があります。つまり、上からのみ取得します。
—
Mikhail Glushenkov、
ああ。とった。興味深い問題。これがリアルタイムシステムの場合、最初の数行を決定するために最適なルックアップテーブルを作成します。正確な複雑さについては、まず2列の場合に最適であることを証明してください。
—
Chad Brewbaker、
計算のために特定の深さまで要素を覗くことができる一連のFIFOリストで操作する場合、静止はさらに興味深いでしょう。
—
George Polevoy