Angenommen, wir möchten das kleinste Element einer Menge , deren Elemente von bis indiziert sind . Wir haben keinen Zugriff auf die Werte dieser Elemente, aber wir können zwei beliebige Elemente von um festzustellen, welches kleiner ist. Für alle Indizes und sind Kosten , um das te und das te Element von zu vergleichen . Die vollständige Kostenmatrix wird uns vorab mitgeteilt.1 n S i j i j S C i , j
Es ist bekannt, dass Vergleiche notwendig und ausreichend sind, um das kleinste Element von . Da jedoch jeder Vergleich unterschiedliche Kosten verursachen kann, möchten wir auch die Gesamtkosten der Vergleiche so gering wie möglich halten.S.
Gibt es einen Online-Algorithmus, der eine Folge von Vergleichen kleiner Gesamtkosten findet, die das kleinste Element von ? Es gibt keinen Online-Algorithmus, der die Menge der Vergleiche mit minimalen Gesamtkosten findet, selbst wenn , aber vielleicht gibt es einen Online-Algorithmus mit einem kleinen Wettbewerbsverhältnis.
Hilft es insbesondere, dem Online-Algorithmus zu erlauben, mehr als Vergleiche durchzuführen ? Ist es besser, mehrere "extra" billige Vergleiche anzustellen, als ein paar teure Vergleiche?
Ich interessiere mich besonders für den Fall , wobei eine diskrete Metrik über die Menge ist und für alle . Ein optimaler Online-Algorithmus ist in dieser Einstellung noch nicht möglich.
Hinweise auf ähnliche Probleme sind willkommen. Ich suche nicht jemanden, der mein Problem löst (obwohl einige Ideen helfen können und geschätzt werden). Ich möchte nur wissen, ob dieses Problem bekannt ist. (Ich konnte nichts finden.)
Antworten:
Die Brute-Force-Fallanalyse zeigt, dass das optimale Wettbewerbsverhältnis für den Sonderfall ohne weitere Einschränkungen der Kostenmatrix der Goldene Schnitt ϕ = ( √ istn = 3 . Somit kann kein Online-Algorithmus ein besseres Wettbewerbsverhältnis alsϕerzielen.ϕ = ( 5- -√+ 1 ) / 2 ϕ
Angenommen, , C 1 , 3 = 1 und C 2 , 3 = ϕ .C.1 , 2= 0 C.1 , 3= 1 C.2 , 3= ϕ
Ohne Verlust der Allgemeinheit beginnt der Algorithmus mit dem Vergleich von mit S 2 zu Kosten Null.S.1 S.2
Der Gegner erklärt .S.1> S.2
Wenn der Algorithmus mit S 3 vergleicht :S.1 S.3
Wenn der Algorithmus mit S 3 vergleicht :S.2 S.3
In beiden Fällen kosten die Vergleiche des Algorithmus einen Faktor von mehr als der optimale Satz von Vergleichen für die offenbarte Gesamtreihenfolge.1 + ϕϕ= ϕ1= ϕ
Im Allgemeinen beträgt das Wettbewerbsverhältnis , wobeia≤b≤cdie drei Vergleichskosten sind. (Hier sind weitere Fälle zu berücksichtigen, da es optimale Algorithmen gibt, die nicht zuerst den billigsten Vergleich durchführen, die Fallanalyse jedoch immer noch elementar ist.) Mühsame Berechnungen implizieren, dass der Ausdruckmin{a+cmin { a + ca + b, a + b + ca + c}} a ≤ b ≤ c wird maximiert, wenna=0,b=1undc=ϕ.min { a + ca + b, a + b + ca + c}} a = 0 b = 1 c = ϕ
Insbesondere wenn kann der bestmögliche Algorithmus gezwungen werden, alle drei Vergleiche durchzuführen.a + ca + b> a + b + ca + c
quelle
Ein Anfang ist:
Ist das ein anständiger Algorithmus? Hängt von den relativen Kosten für das Sortieren von C im Vergleich zu den Vergleichen in S ab:
-t.
quelle