第1段階——スコアリング
対象都市のすべての候補地にスコアが付けられます。重要度が最優先です:Wikipediaのサイトリンク、ページビュー数、遺産登録状況を、取り込み時に一度計算し、リクエスト時ではありません。その後、お客様の興味関心が各ファセットごとにスコアに重みを与え、博物館を選ぶと博物館が優先されますが、他のすべてが削除されるわけではありません。
フィルタリングではなく重み付けを行うのは意図的です。イスタンブールで「歴史のみ」のフィルターを適用すると、ボスポラス海峡フェリーが除外されてしまいますが、正直な3日間のプランからフェリーを外すことはありません。
第2段階——クラスタリング
スコア付けされた候補地は、スケジュール化の前に地理的にグループ化されます。なぜなら、移動時間が真の制約だからです。対岸にある2つの停留所の間には1時間かかることがありますが、ファティフ内の2つの停留所には8分しかかかりません。先にクラスタリングを行うことで、1日が都市をジグザグに横断するのを防ぎます。
クラスターの質量はランクに応じて減衰するため、1つの優れた場所を中心に構成された日が、付近にあるだけで6つの平凡な場所を引きずり込むことはありません。
- 旅程の長さが半径を規定します:1日は15 km以内、3日は25 km、1週間は45 kmです。
- 単一の停留所が時間枠の60%以上を占め、かつ半径の端に位置する場合、1日全体を占有することがあります。
- 連続する日は地理的に離されるため、同じ橋を2度渡ることがありません。
第3段階——順序付け
各クラスターは、注入された距離行列に基づいて歩行シーケンスとして順序付けられます。移動時間は直線距離の推測ではなく、実際のルーティング結果であり、行列は対称であると仮定されません——ベヨールを上るのと下るのは同じではありません。
第4段階——スケジューリング
ここで初めて時計が登場します。各施設の登録された営業時間と、あなたの1日の時間枠に対して、テンポとグループタイプを加味してスケジュールが組まれます。食事休憩は、実際の時間を消費するため、独自の訪問としてその時間枠内に配置されます。
- テンポ
- 訪問時間にかかる倍率:のんびり×1.67、標準×1.00、充実×0.67。訪問数の上限は設けません。
- グループタイプ
- 1日の時間枠にかかる係数:ひとり旅×1.1、カップル×0.9、友達×1.0、家族×0.75。
- 1日の時間枠
- 自分で設定した開始時刻と終了時刻を、グループ係数で調整したもの。
- 訪問数
- 出力結果。1日の時間予算が尽きるまで埋められ、それで終了します。
2つの不変条件には専用のテストがあり、例外なく成立しています。1つ目は、施設の営業時間外に訪問がスケジュールされることはないこと。2つ目は、1日の計画合計時間——訪問時間×テンポに移動時間と休憩を加えたもの——が、その日の時間枠を超えることはないことです。
データが乏しい場合
営業時間の登録がない施設は、1日の中ほどに慎重にスケジュールされ、未確認のマークが付きます。会場独自のデータではなくカテゴリのデフォルトからきた所要時間には、おおよその記号が表示されます。また、都市内に価値ある施設が日数に足りない場合は、日を短縮して通知します——埋め合わせはしません。