順列の空間を探す


8

n個のオブジェクトと、これらのn個のオブジェクトのn個の順列のセット(合計n個の順列のうち)が与えられます。本当の根本的な順列があり、それはn個の順列のセットの1つであると私は知っていますが、どの順列かはわかりません。しかし、神託者は真の順列を知っています。真の順列を見つけるために、2つのオブジェクト間のペアワイズ比較のためにオラクルをクエリすることができます(真の順列ではbの前にaがありますか?)。

素朴な戦略は、バイナリ検索(すべての段階で順列の半分を排除する「正しい」ペアワイズ比較の質問をする)を行い、log nステップで真の順列を見つけることです。私の質問は、これはいつでもできるのですか?または、O(log n)クエリでは不十分なような、順列の敵対的なセットを見つけることができますか?

編集:
例:オブジェクトが1、2、3、4であるとします。順列のセットは{1243、2341、1342、3412}です。私は本当の順列を知りません。「本当の順列では2は4の前ですか?」と尋ねます。神託はイエスを返します。だから私は最初の2つの順列の間でそれを知っています。次に、「真の順列では1は3の前ですか?」と尋ねます。真の順列を見つけるために。


1)オラクルは完全な注文関係を実装していますか?2)「真の」順列がその関係の最小または最大であると私は思いますか?3)バイナリ検索を行う前に、ソートする必要があります。4)最小応答を見つける。最大は線形時間で可能です。5)入力セットが順序付けされていない場合、各入力順列のチェックを少なくとも一度は回避できないため、線形の下限は自明です。6)すべては、注文関係について何も知らないと想定しています。あなたが何かを知っているなら、あなたはそれを利用することができるかもしれません。
ラファエル

@Raphael:以前に書いたように、私の質問は不明確でした。追加した例が役立つかどうかを確認してください。オラクルに尋ねなければならないクエリの数が気になります。
elexhobby 2015

2
私は問題を理解していれば、私はこのセットは、任意の単一のペア213456 124356 123465 132456 124356 123546.で半分にカットすることができないと思う
ルイ

興味深い質問は、ログのバウンドで十分な順列のサブセットはどれかということです。
Nikos M.

回答:


8

次の一連の検討私が与える命令を、: うまくいけば、任意の一般明らかです。=6

123456213456132456124356123546123465

と比較しない場合、順列と順列区別できません。つまり、少なくとも比較が必要です(これは引数ではありませんが、1つに変換できます)。これはタイトです(この例の場合)。+11+11

この分野でよく知られている2つの論文についても触れておきます。

  1. Fredmanは、多くの可能な順序がある場合、クエリを使用して正しい順序を見つけることができることを示しました。Γログ2Γ+2

  2. カーンとキムは、潜在的な順序が一部の順序を拡張するすべての可能な順序を構成する場合、クエリで十分であることを示しました。OログΓ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.