Diese Frage besteht aus zwei Teilen: Erstens ist das Problem in NP und zweitens ist es NP-schwer?
Für den ersten Teil habe ich eine positive Antwort mit einem nicht offensichtlichen Beweis. (Vielen Dank an Suresh für den Hinweis auf einen früheren Fehler.)
Betrachten Sie den folgenden Weg, um die Frage als Entscheidungsproblem zu formalisieren:
UNBESCHRÄNKTE MAGISCHE QUADRATVOLLSTÄNDIGUNG
Eingabe: positive ganze Zahl in einer unären Liste von ganzen Zahlen mit ihren Positionen in einem Raster von n mal n Frage: Gibt es für die verbleibenden Positionen im Raster ganze Zahlen, so dass die Anordnung ein magisches Quadrat bildet ?nnn
Wenn wir die Einschränkung hinzufügen, dass jede der ganzen Zahlen genau einmal im magischen Quadrat vorkommen muss, dann liegt das resultierende Entscheidungsproblem für MAGIC SQUARE COMPLETION offensichtlich in NP. Die Definition eines magischen Quadrats in der Encyclopædia Britannica von 1911 nach Euler unterliegt dieser Einschränkung. Der Wikipedia-Artikel verwendet dagegen derzeit die Terminologie "normales magisches Quadrat" und reserviert "magisches Quadrat" für die uneingeschränkte Version.1,2,…,n2
Mit einer von n Gittern, mindestens n Zahlen muss angegeben werden, da sonst die Antwort triviale „JA“ für die uneingeschränkte Version. Es kann daher angenommen werden, dass die Größe des Eingangs in diesem Fall mehr als n Bits erfordert . Für die normale Version ist es möglich, dass es Eingaben gibt, die wenige Bits erfordern, aber keine Lösung haben. Um solche Komplikationen zu vermeiden, habe ich angegeben, dass n unär ist.nnnnn
Das Argument verwendet eine Grenze für die mögliche Größe von Ganzzahlen, die in Lösungen angezeigt werden. Im Normalfall ist diese Schranke offensichtlich , aber im allgemeinen Fall ist es nicht a priori offensichtlich, dass eine solche Schranke existiert. Es stellt sich heraus, dass eine Exponentialgrenze existiert.n2
xi=1xi=xj+xki,j,k∈{1,2,…,n}xi5–√n−1
Dies erschien auch als Satz 4.7 in:
2n2n−1
xi=1xi=xj+xki,j,k∈{1,2,…,n}xi2n
2n−1
Dies ergibt folgendes:
N2O(N2)
O(N4)O(N8)n2+2(n+1)(n−2)+1=3n2−2n−3n−2mO(m2)
n
Anhand von Papadimitrious Lösungsbindung für eine Instanz von INTEGER LINEAR PROGRAMMING kann auch gezeigt werden, dass die Version, in der die Zahlen alle nicht negativ sein müssen, ebenfalls in NP ist.
Ar×sbr{−a,−a+1,…,a−1,a}Ax=b{0,1,…,s(ra)2r+1}
a=1s=n2+1r=2n+2
- Christos H. Papadimitriou, Zur Komplexität der Ganzzahlprogrammierung , JACM 28, 765–768, 1981. ( Link )