2011-06-23 6 views
1

スケジューリングの問題があります。私は、使用するのに最適なアルゴリズムを見つけようとしています。宿泊/日帰り問題に最適なスケジューリングアルゴリズム?

ホテルはテーマパークを所有しており、ホテルに宿泊する観光客のためのハイライトです。しかし、テーマパークに行きたい方には、1日のパス以上の部屋があります。ピーク時には、テーマパークに行かない人もいるかもしれません。

私たちは、テーマパークを訪れる機会を少なくとも1回与えてもらいたいと思います。

競合がある場合は、ホテルに長く滞在する訪問者に1日のパスを与えたいと考えています。

誰かが正しい方向に問題を最もよく収めるアルゴリズムを指摘できますか?

これは宿題ではありません。 :)

ありがとうございます。

答えて

2

Priority Queue(PQ)を使用できます。毎日、お客様はお客様の(PQ)コンピューティングのお客様に、p = 1/rとして優先度を与えます。はホテル内のゲストの残りの日数です。このように、毎日あなたが離れてnnホテルに滞在する日数がより少ないお客様に渡します(お客様は1日以上の滞在があれば、パスを取得する際に最も高い優先順位を設定する必要があります)ただ1つの可能性があるからです)。 pの顧客が複数いる場合は、ホテルに滞在する合計日数を調べることで選択し、長く滞在する顧客に有利に働きます。

+0

フィードバックいただきありがとうございます。私は少し掘り下げて、優先度キューの実装を持つC5汎用コレクションライブラリを見つけました。そこから始まります。 :) – Retard

+0

@ MarcoS - PriorityQueue:いいですね! –

0

滞在の長さ(およびゲストが既にパスなしでゲストになった日数)に応じて、各ゲストに重み付けまたは優先度を割り当ててから、優先度でゲストを並べ替えることができます。それから、ソートされたリストの一番上から始めてパスを出すのは簡単です。

0

これに優先キューを使用できます。プライオリティキューは、訪問者が滞在している可能性の数および日数に基づいて配置されなければならない。