最初のアプローチ (時間に基づく) の単純なバージョンの問題は、店舗を通過するのにかかる時間の違いを考慮していないことです: デリを待つのに多くの時間を費やした場合、その後の卵は、デリでの待ち時間によって大きく異なります。そのため、チェックする平均時間に基づいて物事を注文することは、おそらく理想的ではありません。
製品のグループを把握できれば、この順序付けを行うのははるかに簡単になります。たとえば、バナナとブドウは 1 つのセクションにあり、通常はそれらが近くにあり、牛乳と卵は別のセクションにあります。このモデルにはいくつかの問題があります (ファンシー チーズ セクションから、または残りの乳製品を含む通常のセクションからチェダーを取得する可能性があります)。通常、グループ B から項目を取得する前に、グループ A から項目を取得します; グループ定義を取得したら、それに基づいて並べ替えるだけです)。
これは、新しいアイテムを入力するときにも役立つ可能性があります。これまでブラックベリーを手に入れたことがないが、アプリが Web などを検索して、ブラックベリーが肉のカテゴリよりも果物のカテゴリに似ていることを確認した場合、それらを入力することを認識します。果物グループ。
では、グルーピングはどのように行うのでしょうか。簡単な方法の 1 つは、アイテム間の平均時間差を距離の尺度として使用して、リスト内のアイテムに対してクラスタリングを行うことです (技術的にはメトリックであるかどうかはわかりませんが、おそらく実際には問題にはなりません)。ここでは、k-means またはその他のクラスタリング アプローチを使用できます。これは、ある種の Web ベースまたはコーパスベースの類似性測定によって強化される可能性もあり、新しいアイテムや店舗での最初の数回の実行でより便利になります。これを支援するために、GPSデータも使用できるかもしれません。
グループへの割り当てとグループの順序付けの間を反復するために、ある種の EM プロセスを実行することもできますが、それが非常に役立つかどうかはわかりません。このプロセスでミスが発生した場合は、手動でグループに割り当てることもできます。
これはクールなアイデアです!解放してくれれば、私が使うかもしれません。:)