0 Daumen
210 Aufrufe

Aufgabe:

Wie kommt man auf die Obergrenze (log2(n) + 1) * Optimale Länge im Metrischen Traveling Salesperson Problem?

Mit c(x,y) für die Kantenlänge lautet die Dreiecksungleichung:

 c(u,v)<=c(u,w)+c(w,v) c(u, v) <= c(u,w) + c(w, v)
Problem/Ansatz:


Wird vjv_j zwischen den Knoten y und z in einem Kreis / einer Tour eingefügt, dann gilt:

cost(vj)=c(y,vj)+c(vj,z)c(y,z)cost(v_j) = c(y, v_j) + c(v_j, z) - c(y, z)

Für vi,vjv_i, v_j gilt:

min(cost(vi),cost(vj))<=2cost(vi,vj)min(cost(v_i), cost(v_j)) <= 2 * cost(v_i, v_j)

-> wie kann ich das hier verstehen? Der nächste Knoten, der die niedrigsten Kosten hinsichtlich Kantenlänge verursacht wird ausgewählt und das ist kleiner als die doppelte Kantenlänge von dem gewählten Knoten zu irgendeinen beliebigen anderen Knoten?

Sei R=(w1,w2,...,wn,w1) R* = (w_1, w_2, ... , w_n, w_1) die optimale Tour und R=(wi1,wi2,...,wik,wi1)R = (w_{i1}, w_{i2}, ..., w_{ik}, w_{i1}) ein Kreis aus k Knoten mit ij<ij+1 i_j < i_{j + 1}. R ist an R* angelehnt. Wegen der Dreiecksungleichung gilt c(R)<=c(R)=OPTc(R) <= c(R*) = OPT (optimale Länge)
-> Was bedeutet R ist an R* angelehnt? Ich nehme an R hat einfach nur weniger Knoten als R*, aber die gleiche Abfolge?
-> Und da ein Umweg über mehr Knoten immer länger ist, muss R < R* sein, außer wenn k = n, dann R = R*?

Dann gibt es eine Menge Z(wi1,...,wik)Z ⊂ (w_{i1}, ..., w_{ik})  mit Z=floor(k/2)|Z| = floor(k/2)(also abrunden) und
cost(Z)<=OPTcost(Z) <= OPT

-> Also gibt es hier eine Menge Z die eine Telmenge von R ist, genauer die Hälfte der Elemente, welche kleiner als die optimale Länge ist
-> ich nehme an, hier wird angenommen, dass Z nicht die gleiche Abfolge wie R hat ? bzw. wie kann man cost(Z) berechnen, wenn die Abfolge noch nicht fest ist

R wird in zwei Mengen geteilt M1=((wi1,wi2),...) M_1 = ((w_{i1}, w_{i2}), ...)

und

M2=((wi2,wi3),...) M_2 = ((w_{i2}, w_{i3}), ...) , wobei beide floor(k/2) Elemente haben -> haben wir hier jetzt eine Menge von willkürlichen Kanten statt Knoten??

Sei M diejenige für die gilt:c(M)<=1/2c(R)<=1/2c(R) c(M) <= 1/2 * c(R) <= 1/2 * c(R*)

-> wie werden denn hier jetzt die Kanten gebildet? einfach alle aufsummiert ? könnten hier nicht Kombinationen auftauchen, die größer R sind?

Sei Z die Menge der Knoten, die je Kante von M den kleineren Cost-Wert haben, d.h.

billigst(u,v)=u,fallscost(u)<=cost(v),sonstv billigst(u, v) = u, falls cost(u) <= cost(v), sonst v
ist Z=(billigst(wij,wij1)(wij,wij+1)M) Z = (billigst(w_{i_j}, w_{i_{j-1}}) | (w_{i_j}, w_{i_{j+1}}) ∈ M )
-> ?? warum wij1undwij+1 w_{i_{j-1}} und w_{i_{j+1}}

-> ich verstehe hier nicht, wie ein Knoten ausgewählt wird
cost(Z)=min(cost(wij,wij+1)<=2c(wij,wij1) cost(Z) = ∑ min(cost(w_{i_j}, w_{i_{j+1}}) <= ∑ 2 * c(w_{i_{j}}, w_{i_{j-1}})

cost(Z)=2c(M)<=21/2c(R)<=OPT cost(Z) = 2 * c(M) <= 2 * 1/2 * c(R) <= OPT

-> Kanten in M werden iteriert und einer der Knoten gewählt und das ist kleiner als die doppelte Kantenlänge zwischen welchen Knoten??

Mit R1=R R_1 = R* , und Z1 Z_1 wird bestimmt und das für alle Rl+1=RlZl R_{l+1} = R_l - Z_l für l>=1 l>=1 und jedes Rl R_l ist an R* angelehnt

Rl<=n/(2l1) |R_l| <= n/(2^{l-1}) , also ist nach log(n)+1 log(n) + 1 Wiederholungen UZl=v1,..,vn U Z_l = {v1, .., v_n}

und cost(Zl)<=(log(n)+1)OPT ∑ cost(Z_l) <= (log(n) + 1) * OPT

-> UZl U Z_l steht für die Vereinigung der ganzen Mengen

-> kann ich nicht nachvollziehen, wie groß ist überhaupt ein R1 R_1 usw?

Avatar von

Ein anderes Problem?

Stell deine Frage