Können wir schnell perfekt gleichmäßige Mod 3 generieren oder NP-Probleme lösen?


13

Um ehrlich zu sein, ich weiß nicht so viel darüber, wie Zufallszahlen generiert werden (Kommentare sind willkommen!), Aber nehmen wir das folgende theoretische Modell an: Wir können ganze Zahlen aus [ 1 , 2 n ] gleichmäßig zufällig erhalten [1,2n]und unser Ziel ist die Ausgabe eine ganze Zahl gleichmäßig zufällig aus [1,3].

Eine einfache Lösung, deren erwartete Laufzeit polynomiell ist, ist die folgende. Verwerfen Sie (und möglicherweise auch ) aus sodass die Anzahl der verbleibenden ganzen Zahlen durch teilbar ist, sodass wir der generierten ganzen Zahl nehmen können. Wenn wir eine verworfene Nummer erhalten, generieren wir eine andere Nummer, bis wir eine nicht verworfene Nummer erhalten.2 n 2n2 n - 1 2n1[ 1 , 2 n ] [1,2n]3 3mod 3mod3

Aber was ist, wenn wir sicher in der Polynomzeit enden wollen? Aufgrund von Teilbarkeitsproblemen wird das Problem unlösbar. Ich frage mich jedoch, ob wir das Folgende lösen können.

Nehmen wir an, wir können aus [1,2 ^ n] gleichförmig zufällige ganze Zahlen erzeugen, [ 1 , 2 n ][1,2n]und wir haben ein rechnerisch schwieriges Problem. Unser Ziel ist es, eine ganze Zahl gleichmäßig zufällig aus [1,3] auszugeben oder das schwierige Problem zu lösen.

Hier kann das schwierige Problem darin bestehen, eine Ganzzahl zu berücksichtigen, eine SAT-Instanz oder etwas Ähnliches zu lösen. Zum Beispiel können wir eine Einwegpermutation wie folgt dekodieren , wenn wir ein (und als gerade vorausgesetzt wird): Wenn für unsere zufällige Zeichenfolge gilt , wenn , dann nehme . Schließlich, wenn , dann sind wir fertig, als r = x . (Wenn n ungerade ist, dann funktioniert etwas Ähnliches, nur müssen wir auch prüfen, ob f (r + 1) = f (x) und 2 subtrahieren, wenn f (r)> f (x) .)f ff ( x ) f(x)n nf ( r ) < f ( x ) f(r)<f(x)f ( r ) mod 3 f(r)mod3f ( r ) > f ( x ) f(r)>f(x)f ( r ) - 1 mod 3 f(r)1mod3f ( r ) = f ( x ) f(r)=f(x)r = x r=xn nf ( r + 1 ) = f ( x)f(r+1)=f(x)22f(r)>f(x)f(r)>f(x)

Zusammenfassung der Antworten. Emil Jeřábek hat gezeigt, dass wir jedes einwertige Suchproblem von TFNP und auch von PPA-3 lösen können, wenn wir nicht perfekt einheitlich generieren können. Andererseits hat Daniello gezeigt, dass wir NP-vollständige Probleme nicht auf die oben beschriebene Weise lösen können, es sei denn, NP = co-NP.


@Tayfun Wenn ist, brauchen wir , um durch teilbar zu sein , wenn ungerade ist, brauchen wir , um durch teilbar zu sein . Ich würde mich freuen, wenn Sie genauer wissen würden, in welchem ​​Teil ich genauer sein sollte. n 2 n - 1 3 n 2 n - 2 3n2n13n2n23
Domotorp

(1) Sie können das Beispiel mit Einweg-Permutationen zur Lösung von (einwertigen) Funktionen in TFNP verallgemeinern. (2) Sie können beliebige PPA-3-Suchprobleme lösen.
Emil Jeřábek unterstützt Monica am

@Emil (1): Wie? (2): Ich habe auch gedacht, dass dies die richtige Komplexitätsklasse sein könnte, aber ich verstehe nicht, warum wir solche Probleme lösen könnten.
Domotorp

Ich versuche es später als Antwort aufzuschreiben. Übrigens ist die Frage interessant, ich weiß nicht, was mit all den Abstimmungen los ist.
Emil Jeřábek unterstützt Monica am

2
Die Abstimmungen sind bizarr. Das ist eine sehr coole Frage! Und ich sehe nichts Unklares.
Sasho Nikolov

Antworten:


6

Als Reaktion auf die Antwort von domotorp können wir meines Erachtens NP-Suchprobleme lösen, die eine der folgenden Einschränkungen erfüllen:

  1. die Anzahl der Lösungen ist bekannt und nicht durch teilbar ; oder,33

  2. Die Anzahl der Lösungen ist polynomial begrenzt (aber nicht im Voraus bekannt).

Für 1. können wir einfaches Auffüllen verwenden, um auf den folgenden Fall zu reduzieren:

  • Die Lösungen sind aus [ 0 , 2 m - 1 ) , wobei m geradzahlig ist.[0,2m1)m

  • Die Anzahl der Lösungen s erfüllt .ss 1( mod3 )s1(mod3)

  • Irgendwelche zwei Lösungen sind mindestens Abstand voneinander. (Sagen wir, sie sind alle durch teilbar .)4 444

Beachten Sie, dass . Also können wir das Problem lösen, indem wir ein zufälliges auswählen und ein ähnliches Protokoll wie in meiner Antwort für eindeutige Lösungen verwenden, wenn (was zu einer Verteilung führt) on kurz vor einer jede der Lösungen) und ausgeben, wenn .3 2 m - s a [ 0 , 2 m ) a [ 0 , 2 m - s ) { 0 , 1 , 2 } 0 s 0 a [ 2 m - s , 2 m )32msa[0,2m)a[0,2ms){0,1,2}0s0a[2ms,2m)

Für 2. nehme zunächst an, dass die Anzahl der Lösungensp(n)3k3s3 ( s3 k )y0,,y3k-1y0<y1<<y3k-1yi(s3(s3k)y0,,y3k1y0<y1<<y3k1yi3 k )3(s3k)dh nicht durch teilbar und bekannt. Somit sind wir mit 1 fertig.3

Wenn nun die Anzahl der Lösungen durch , aber nicht bekannt ist, führen wir das Protokoll für jede mögliche Auswahl von parallel über Male ( ) aus. und:p ( n ) 2 l 2 lp ( n ) , 1 s 2 lp(n)22p ( n )1 s 2

  • Wenn einer der Threads eine Lösung des ursprünglichen Problems zurückgibt, geben wir eine solche an die Ausgabe weiter.

  • Wenn alle Threads die Elemente , geben wir .r1,,r2{0,1,2}r1, , R2{0,1,2}(r1+r2++r2)mod3(r1+r2++r2)mod3

Anlage auf dem zweiten Fall gleichmäßig in verteilten für die wahre Anzahl von Lösungen des ursprünglichen Problems zu sein, während die anderen von unabhängigem , daher wird die gesamte Summe auch gleichmäßig verteilt .r s { 0 , 1 , 2 } s r i r srs{0,1,2}srirs


Die übliche Verallgemeinerung von 1 und 2 ist, dass die Anzahl der Lösungen aus einer polynomiell berechenbaren Liste von Zahlen stammt, so dass die größte Potenz von 3, die eine von ihnen teilt, polynomiell begrenzt ist. 3
Emil Jeřábek unterstützt Monica am

Übrigens, kennen Sie nicht-zusammengesetzte Probleme, bei denen die Anzahl der Lösungen durch eine Superpolynom-Potenz von 3 teilbar ist ? Mit zusammengesetzt meine ich so etwas wie das direkte Produkt einiger Probleme, bei denen die Anzahl der Lösungen durch 3 teilbar ist - zusammengesetzte Probleme können auf die oben beschriebene Weise leicht gelöst werden. 33
Domotorp

Ich denke, dass es möglich ist, zu beweisen, dass es ein Orakel gibt, unter dem eine Superpolynom-Potenz von 3 Problemen nicht auf die oben beschriebene Weise gelöst werden kann.
Domotorp

@domotorp Das ist interessant, ich hatte die Möglichkeit, dass eine Art Valiant-Vazirani-Argument verwendet werden könnte, um beliebige TFNP-Probleme zu lösen. Die Charakterisierung ist jedoch noch unvollständig. Ich bin besonders unglücklich über die Einschränkung in dieser Antwort, dass die Anzahl der Lösungen bekannt ist oder zumindest aus einer polynomialzeitkonstruierbaren Liste stammt. Zum einen ist die Klasse solcher Probleme anscheinend mit PPA-3 aus meiner anderen Antwort nicht zu vergleichen, daher wäre es gut, eine Konstruktion zu haben, die beide verallgemeinert. AFAICS die einzige Obergrenze ist, dass jedes Problem lösbar ist ...
Emil Jeřábek unterstützt Monica am

... ist auf die obige Weise auf ein TFNP-Problem reduzierbar, dessen Anzahl von Lösungen 1 Modulo 3 ist (aber nicht bekannt). Es ist mir nicht klar, ob ich damit rechnen soll, dass dies die richtige Klasse ist, oder ob schließlich eine zusätzliche Einschränkung erforderlich ist. 13
Emil Jeřábek unterstützt Monica am

10

Ich werde Zahlen verwenden, die mit 0 beginnen, anstatt mit 1 , da ich es viel natürlicher finde.01

Hier sind zwei Klassen von Problemen, die wir auf diese Weise lösen können:

  1. Funktionen in TFNP (dh einwertige Gesamt-NP-Suchprobleme)

    (Dies verallgemeinert das Beispiel mit Einweg-Permutationen. Es enthält als Sonderfall Entscheidungsprobleme aus U P c o U P. )UPcoUP

    Der Aufbau ist, dass wir ein Polynom-Zeit-Prädikat R ( x , y ) und ein Polynom p ( n ) haben, so dass für jedes x der Länge n ein eindeutiges y der Länge m = p ( n ) existiert, so dass R ( x , y ) gilt. Die Rechenaufgabe ist, gegeben x , find y .R(x,y)p(n)xnym=p(n)R(x,y)xy

    Jetzt gehe ich von wlog aus, dass m gerade ist, also 2 m1m( mod3 ) . Der Algorithmus soll ein gleichmäßig zufälliges y [ 0 , 2 m ) erzeugen und ausgeben2m1(mod3)y[0,2m)

    • y (als Lösung des Suchproblems) wenn R ( x , y ) ;yR(x,y)

    • y - y ' (als zufälliges Element von { 0 , 1 , 2 } ), wenn y - y '{ 1 , 2 } und R ( x , y ' ) sind ;yy{0,1,2}yy{1,2}R(x,y)

    • y mod 3 (als zufälliges Element von { 0 , 1 , 2 } ), wenn kein y '{ y , y - 1 , y - 2 } R ( x , y ' ) löst.ymod3{0,1,2}y{y,y1,y2}R(x,y)

    Wenn es keine Lösung für das Suchproblem gäbe, würden die 2- m- Zufallsentscheidungen 1 und 2 ( 2 m - 1 ) / 3- mal und 0 ( 2 m + 2 ) / 3- mal (ein weiteres Mal) ergeben. Wenn jedoch y das Suchproblem löst, haben wir mit den Elementen y , y + 1 , y + 2 (die alle drei Restklassen treffen) gearbeitet, sodass sie nur die Reste 1 und 2 erzeugen2m12 (2m1)/30 (2m+2)/3yy,y+1,y+212, was den Vorteil von 0 ausgleicht . (Ich gehe hier von wlog aus, dass y < 2 m - 2 ist .)0y<2m2

  2. PPA- 3- Suchprobleme3

    Ein bequemer Weg, PPA- 3 zu definieren, besteht darin, NP-Suchprobleme auf die folgenden Arten von Problemen zu reduzieren. Wir haben eine feste Polynomzeitfunktion f ( x , y ) und ein Polynom p ( n ) , so dass für jede Eingabe x der Länge n die induzierte Abbildung f x ( y ) = f ( x , y ) auf beschränkt ist Eingaben y der Länge m = p ( n ) sind eine Funktion f3f(x,y)p(n)xnfx(y)=f(x,y)ym=p(n)x : [ 0 , 2 m ) [ 0 , 2 m ) erfüllt , f x ( f x ( f x ( y ) ) ) = y für jedes y . Die Aufgabe ist, x gegeben , einen Fixpunkt y von f x zu finden : f x ( y ) = y .fx:[0,2m)[0,2m)fx(fx(fx(y)))=yyxyfxfx(y)=y

    Wir können dies auf folgende Weise lösen: Wenn x der Länge n gegeben ist , erzeugen wir ein zufälliges y der Länge m = p ( n ) und geben es ausxnym=p(n)

    • y wenn es ein Fixpunkt von f x ist ;yfx

    • andernfalls, y , f x ( y ) und f x ( f x ( y ) ) sind verschiedene Elemente. Wir können sie als Etikett { y , f x ( y ) , f x ( f x ( y ) ) } = { y 0 , y 1 , y 2 } mit y 0 < y 1 <yfx(y)fx(fx(y)){y,fx(y),fx(fx(y))}={y0,y1,y2}y 2 und gebe i { 0 , 1 , 2 } aus, so dass y = y i .y0<y1<y2i{0,1,2}y=yi

    Es ist klar aus den Definitionen , dass dies eine gleichmäßige Verteilung gibt auf { 0 , 1 , 2 } , als Nicht-Fixpoint y ‚s kommt in verdreifacht.{0,1,2}y


Lassen Sie mich fürs Protokoll die Gleichwertigkeit des obigen Problems mit Papadimitrious vollständigem Problem für PPA- 3 zeigen , da diese Klasse in der Literatur größtenteils vernachlässigt wird. Das Problem wird in Buss, Johnson, erwähnt: "Propositionale Beweise und Reduktionen zwischen NP-Suchproblemen", aber sie geben nicht die Äquivalenz an. Für PPA wird ein ähnliches Problem (EINZIG) in Beame, Cook, Edmonds, Impagliazzo und Pitassi angegeben: „Die relative Komplexität von NP-Suchproblemen“. Es ist nichts Besonderes an 3 , das folgende Argument gilt sinngemäß für jede ungerade Primzahl.33

Behauptung: Die folgenden NP-Suchprobleme sind vielfach miteinander reduzierbar:

  1. Wenn ein Stromkreis gegeben ist, der einen zweigeteilten ungerichteten Graphen ( A B , E ) und einen Scheitelpunkt u A B darstellt, dessen Grad nicht durch 3 teilbar ist , finde einen anderen solchen Scheitelpunkt.(AB,E)uAB3

  2. Wenn eine Schaltung gegeben ist, die einen gerichteten Graphen ( V , E ) und einen Scheitelpunkt u V darstellt, dessen Gradgleichgewicht (dh Außengrad minus Innengrad) nicht durch 3 teilbar ist , finde einen anderen solchen Scheitelpunkt.(V,E)uV3

  3. Wenn eine Schaltung eine Funktion f berechnet : [ 0 , 2 n ) [ 0 , 2 n ), so dass f 3 = i d , finde einen Fixpunkt von f .f:[0,2n)[0,2n)f3=idf

Beweis:

1 p 2 ist offensichtlich, da es ausreicht, die Kanten von links nach rechts zu lenken.1p2

2 p 1 : Erstellen wir zunächst einen gewichteten zweigliedrigen Graphen. Lassen Sie A und B seinKopien von V : A = { x A : x V } , B = { x B : x V } . Für jede ursprüngliche Kante x y setzen wir eine Kante { x A , y B } mit dem Gewicht 1 und eine Kante { x B ,2p1ABVA={xA:xV}B={xB:xV}xy{xA,yB}1y A } des Gewichts - 1 . Dies macht deg ( x A ) = - deg ( x B ) gleich dem Gradgleichgewicht von x im Originalgraphen. Wenn u der gegebene Gleichgewichtspunkt ist, ist b 0{xB,yA}1deg(xA)=deg(xB)xu( mod3 ) addieren wir eine zusätzliche Kante { u A , u B } des Gewichts b , so dass deg ( u A ) = 2 b 0 istb≢0(mod3){uA,uB}b( mod3)deg(uA)=2b≢0(mod3), and deg(uB)=0deg(uB)=0. uAuA will be our chosen vertex.

In order to make the graph a plain unweighted undirected graph, we first reduce all weights modulo 33, and drop all edges of weight 00. This leaves only edges of weights 11 and 22. The latter can be replaced with suitable gadgets. For example, instead of a weight-22 edge {xA,yB}{xA,yB}, we include new vertices wAiwAi, zBizBi for i=0,,3i=0,,3, with edges {xA,yB}{xA,yB}, {xA,zBi}{xA,zBi}, {wAi,yB}{wAi,yB}, {wAi,zBi}{wAi,zBi}, {wAi,zB(i+1)mod4}{wAi,zB(i+1)mod4}: this makes deg(wAi)=deg(zBi)=3deg(wAi)=deg(zBi)=3, and contributes 52(mod3)52(mod3) to xAxA and yByB.

3p23p2: Let me assume for simplicity nn is even so that 2n1(mod3)2n1(mod3). We construct a directed graph on V=[0,2n)V=[0,2n) as follows:

  • We include edges 3x+13x3x+13x and 3x+23x3x+23x for each x<2n/31x<2n/31.

  • If x0<x1<x2x0<x1<x2 is a non-fixpoint orbit of ff, we include edges x0x1x0x1 and x0x2x0x2.

The chosen vertex will be u=2n1u=2n1. The first clause contributes balance 11 or 21(mod3) to each vertex u. Likewise, the second clause contributes balance 1 or 21(mod3) to vertices that are not fixpoints. Thus, assuming u is not already a fixpoint, it is indeed unbalanced modulo 3, and any other vertex unbalanced modulo 3 is a fixpoint of f.

1p3: We may assume that A=B=[0,2n) with n even, and the given vertex uA has degree 2(mod3).

We can efficiently label edges incident with a vertex yB as (y,j), where j<deg(y). In this way, E becomes a subset of [0,2n)×[0,2n), which we identify with [0,22n). We define a function f on [0,2n)×[0,2n) as follows.

  • On the complement of E: for each yB, and j such that deg(y)3j<2n1, we make f(y,3j)=(y,3j+1), f(y,3j+1)=(y,3j+2), f(y,3j+2)=(y,3j). Also, f(3i,2n1)=(3i+1,2n1), f(3i+1,2n1)=(3i+2,2n1), f(3i+2,2n1)=(3i,2n1) for 3i<2n1. This leaves out the point (2n1,2n1), and 3(deg(y)mod3) points (y,i) for each yB whose degree is not divisible by 3.

  • On E: for each xA, we fix an efficient enumeration of its incident edges (y0,j0),,(yd1,jd1), where d=deg(x). We put f(y3i,j3i)=(y3i+1,j3i+1), f(y3i+1,j3i+1)=(y3i+2,j3i+2), f(y3i+2,j3i+2)=(y3i,j3i) for i<d/3. This leaves out deg(x)mod3 points for each vertex xA whose degree is not divisible by 3.

Since deg(u)2(mod3), two of its incident edges were left out; we make them into yet another f cycle using (2n1,2n1) as the third point. The remaining points are left as fixpoints of f. By construction, any of them will give rise to a solution of (1).


1
Both solutions are correct, but I have a problem with the definitions of the classes. In the definition of TFNP, usually at least one solution is required to exist, while you want exactly one, which would be TFUP, I guess. PPA-3 is originally defined with input a bipartite graph and a given vertex whose degree is not 3, and we need to find another such vertex. Your example with f is obviously in this class, but why is it complete for it? (This might be well-known, but it's new to me.)
domotorp

1
(1) I stressed very explicitly that the result does not apply to arbitrary TFNP search problems, but only to functions. I really don’t know how to make it even more clear. (2) Yes, this is equivalent to the usual definition of PPA-3. This shouldn’t be difficult to show.
Emil Jeřábek supports Monica

(1) Sorry, here my confusion was only linguistic; in your original comment you've indeed emphasized single valued, but in your answer you wrote just TFNP functions, and then added in parenthesis the "i.e." which makes equivalent as far as I know. I think it would be easier to understand if you wrote "single-valued TFNP functions" in your answer too.
domotorp

(2) This equivalence would be very surprising. With a similar trick that you've used in (1), it would imply that USAT is in PPA-3, wouldn't it? I would expect it more probable that my problem is related to some TFNP whose number of solutions is 1 or 2 mod 3 for each n (and we need to know which). Btw, your solution for (1) already implies that FullFactoring can be solved, which was my original motivation.
domotorp

Functions are single-valued. That's what function means. I'll try to look up the stuff on PPA-3. However, I don't see how it would include USAT. The construction in (1) does not produce a poly-time f with f3=id, or at least I don't see it: for the obvious choice, one cannot compute f(2m1) without solving the search problem first.
Emil Jeřábek supports Monica

7

If you could perfectly generate mod 3 OR solve SAT (or any other NP-complete problem, for that matter) then NP=coNP. In particular, consider the perfect generator / solver when given a SAT formula ϕ.

Let (n) be the maximum number of random bits drawn by the generator on inputs of size n. Since the generator runs in polynomial time, (n) is polynomial. Since 2(n) is not divisible by 3 there must be some sequence of at most (n) coin tosses that will make the generator output a (correct) answer for ϕ. Thus, if ϕ is unsatisfiable, there is a set of coin tosses that make the generator say that ϕ is unsatisfiable. If ϕ is satisfiable then the generator will never wrongly claim that ϕ is unsatisfiable, no matter what the coins are. Thus, we have shown that the language UNSAT of unsatisfiable formulas is in NP, implying NP=coNP.


2
In other words: whatever we can solve in this way is reducible to a TFNP problem. So, rather than NP, we sould shoot for subclasses of TFNP.
Emil Jeřábek supports Monica

Yes, although i'm not certain that uniqueness is necessary, or one can get away with something significantly weaker.
daniello

1
Uniqueness of what?
Emil Jeřábek supports Monica

"The setup is that we have a polynomial-time predicate R(x,y), and a polynomial p(n) such that for every x of length n, there exists a unique y of length m=p(n) such that R(x,y) holds. The computational task is, given x, find y." I have a feeling that the number of y's not being divisible by 3 could be enough. [Just noticed domotorp's new answer]
daniello

3
Well, the first part of my answer is about search problems with a unique solution, but that of course is not necessary. Already the second part of my answer is about search problems with potentially many solutions. What I meant by my comment above is the simple observation that if A(x) is a randomized poly-time algorithm that either generates a uniformly random element of {0,1,2}, or solves a problem S, then “given x, compute a string of random bits that makes A solve S” is a TFNP problem, and S is reducible to it. No uniqueness involved.
Emil Jeřábek supports Monica

4

So here is an extension of Emil's argument that shows that search problems where the number of solutions is 1, 2 or 4 (we do not need to know which) can be solved in the above way. I'm posting it as an answer because it's way too long for a comment and I hope that someone smarter than me can prove that in fact the number of solutions can be anything not divisible by 3.

Say that a random string r is close to a solution (i.e., to a y for which R(x,y) holds) if one of R(x,r), R(x,r+1), or R(x,r+2) holds. (For simplicity, suppose that y=0 and y=1 are not solutions.) In Emil's solution, it was enough to generate a random string r and output rmod3 except that we locally fiddle around at solutions; I don't go into details, see his answer. It is enough for us that if r is close to a solution, then we can kill an arbitrary numbermod3 by possibly outputting a solution so that for the rest of the r's the rmod3 function gives a perfectly uniform numbermod3.

Now, let us suppose that the number of solutions is 1 or 2 for any x. We generate two random strings of length n: r1 and r2. If at least one of them is not close to a solution, we output r1+r2mod3. For simplicity, suppose that n is even so that we have an extra 0 if we just did this, and also suppose that if there are two solutions, they are far. If r1 and r2 are both close to the same solution, we fiddle around so that we kill a 0. If r1 and r2 are close to different solutions, then if r1<r2, we fiddle around so that we kill a 1, and if r1>r2, we fiddle around so that we kill a 2. This way if there is only one solution, we kill exactly one 0, while if there are two solutions, we kill two 0's, and one 1 and one 2.

This argument cannot be extended to 3 solutions, but can be for 4, and from here I'll be very sketchy. Generate four random strings, r1,r2,r3,r4 and output r1+r2+r3+r4mod3 unless all of them are close to a solution. Again suppose that there's an extra 0 and solutions are always far. If all the ri's are close to the same solution, we fiddle around to kill a 0. If three of the ri's are close to the same solution that is smaller than the solution to which the fourth ri is close, we fiddle around to kill a 1. If three of the ri's are close to the same solution that is larger than the solution to which the fourth ri is close, we fiddle around to kill a 2. If all the ri's are close to a different solution, we kill three 0's. The correctness for one and two solutions is similar to the previous case. For four solutions, notice that we kill four+three 0's, six 1's and six 2's.

I think that the reasoning of the the last paragraph could be extended to any bounded number of solutions that is not divisible by 3 with some algebra. A more interesting question is whether there is a protocol that works for any number of solutions.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.