加重比較による安価なオンライン選択


8

要素に1からnまでのインデックスが付けられているセット最小要素を検索するとします。これらの要素の値にはアクセスできませんが、Sの任意の2つの要素を比較して、どちらが小さいかを確認できます。インデックスiおよびjの場合、Sのi番目とj番目の要素を比較するために関連するコストC i jがあります。完全なコスト行列C i jは、事前に与えられています。S1nSij Ci,jijSCi,j

Sの最小要素を見つけるには、n1比較が必要かつ十分であることはよく知られています。ただし、比較ごとに異なるコストがかかる可能性があるため、比較の総コストもできるだけ小さくしたいと考えています。S

最小要素を見つける、小さな総コストの一連の比較を見つけるオンラインアルゴリズムはありSますか?n = 3の場合でも、最小の総コストで 一連の比較を見つけるオンラインアルゴリズムはありませんが、おそらく競合率が小さいオンラインアルゴリズムがあります。 n=3

特に、オンラインアルゴリズムが超える比較を実行できるようにすることは役立ちますか?いくつかの高価な比較ではなく、いくつかの「余分な」安価な比較を行う方が良いですか?n1

私は特に、ケースに興味dがセットにわたって離散メトリックであるS、及び0 D I J kの全てについて、I J最適なオンラインアルゴリズムは、この設定ではまだ不可能です。Ci,j=4d(i,j)dS0d(i,j)ki,j

同様の問題への言及はありがたいです。私は自分の問題を解決するために誰かを探しているのではありません(ただし、いくつかのアイデアが役立ち、ありがたいです)。この問題がわかっているかどうか知りたいだけです。(何も見つかりませんでした。)


1
待って、今は混乱しています。値とペアワイズ比較コストの両方が事前にわかっている場合、合計比較コストを最小化することは、完全な非循環有向グラフで最小コスト樹木を計算することと同じです。ただし、値がわからず、実際に比較を実行して順序を見つけるだけの場合、最小合計コストの比較を使用して常に最小の要素を見つけるオンライン戦略はありません。賢い敵はあなたにお金を浪費させることができます。 どのバージョンに興味がありますか?
Jeffε

わかりました、多分私は私の質問を十分に明確にしませんでした。値は不明であり、比較によって "明らかに"されます(実際には、オブジェクトが他のオブジェクトよりも大きい、等しい、または小さい場合にのみ比較が返されるとは限りません)。だから私は2番目のバージョンに興味があります。ところで、最小費用の樹木樹については聞いたことがない。少なくとも私は何か新しいことを学びました。
ジョージ

3
この点を明確にするために質問を編集する必要があります。あなたの短い質問に答えるために:私はこの問題は、すでに知られているが、それはだから、オンラインでの比較の最適な設定を行うことは、NP完全ではありませんかどうかわからないことは不可能(しない限り、)。期待できる最高のものは、小さな競争率です。n=2
Jeffε

1
わかりやすくするために編集しました(私はそう思います)。これはオンラインアルゴリズムの質問であることを強調します。問題の説明をあまり取り込んでいないことを確認してください。
Jeffε

これはかなり良いです!どうもありがとうございました。また、2つのオブジェクト間の距離は、整数kによって制限されていることも追加しました。
ジョージ

回答:


6

ブルートフォースのケース分析により、コストマトリックスに他の制限がない場合の特殊なケースの最適な競合比率 は、黄金比ϕ = n=3ϕ=(5+1)/2ϕ

C1,2=0C1,3=1C2,3=ϕ

  • S1S2

  • S1>S2

  • S1S3

    • S1>S3
    • S2S3
    • S2<S3S2
    • 1+ϕ
    • S2<S3<S1
    • S1>S2S2<S3ϕ
  • S2S3

    • S3>S2S2
    • ϕ
    • S2<S1<S3
    • S1>S2S1<S31
  • どちらの場合でも、アルゴリズムの比較には係数がかかります。1+ϕϕ=ϕ1=ϕ

min{a+ca+b,a+b+ca+c}abcmin{a+ca+b,a+b+ca+c}a=0b=1c=ϕ

特に、場合、可能な限り最良のアルゴリズムで3つの比較をすべて実行するように強制できます。a+ca+b>a+b+ca+c


1
これは非常に良い最初のステップです。私の問題に関心をお寄せいただきありがとうございます(私よりも興味があるようです:))
George

素晴らしい観察。なお、この分析は、私が誤解しない限り、決定論的アルゴリズムを前提としています。
伊藤剛

はい、そうです。ランダム化されたアルゴリズムのほうが良いかもしれません(予想では、忘却型の敵に対して)。
Jeffε

-3

開始は:

  1. コストマトリックスCのすべての要素を並べ替えます
  2. 最初に最低コストの比較を実行し、敗者をセットNOPEに入れます
  3. 後続の各コスト比較では、2つの要素のいずれかがNOPEにある場合、比較を実行しません
  4. 1つを除くすべての要素がNOPEになるまで続ける必要があります。これはn-1の比較です。

これはまともなアルゴリズムですか?Cの並べ替えとSでの比較の相対的なコストに依存します。

  • 評価しているアイテムについて、現在実行中の比較よりも安い比較があった場合、それはすでに実行されており、現在のアイテムがその比較に勝ちました。
  • コスト== Cをソートするためのn ^ 2数値比較、およびSのn-1比較

-t。


1
はい、これは明らかに貪欲なアルゴリズムの1つです。いいえ、コストは、行列によって与えられるように、アルゴリズムによって実行される個々の比較のコストの合計です。Ci,j
Jeffε

ありがとう!この明らかな貪欲なアプローチについてはすでに考えました(これが何も上手くいかない場合に使用するつもりです)。問題は、それが競争率を保証するかどうかです。
ジョージ

@JeffE-はい、コストは関連するコストとのn-1の比較ですが、コストマトリックスのソートのコストでもあります
Tristan Reid

@George B.-Cをソートするコストが比較的安い場合、これを行うためのより良いアルゴリズムはないと思います。このアルゴリズムは、常に正確にn-1の比較を実行します。実行される比較は、常にn-1の最も安価な比較になります。私は貪欲は良いと思います...
トリスタンリード

いいえ、常に一番安いとは限りません。たとえば、A> B> Cとし、 = 1、 = 2、 = 1とします。最初にとを比較し、次にと比較した総コストは、最初比較する場合に対し、4 ^ 1 + 4 ^ 2 = 20であろうする、次いで及びにコストが非常にかかる貪欲アルゴリズムがなく、^ 1 = 8 4 ^ 1 + 4あろうここで働きます。はい、Cの並べ替えは問題ありません。d(A,B)d(A,C)d(B,C)ABACBCAB
ジョージ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.