z ?
Die Ausdrücke stammen aus der gewöhnlichen High-School-Algebra, beschränken sich jedoch auf arithmetische Addition und Multiplikation (z. B. ), ohne Inverse, Subtraktion oder Division. Buchstaben sind Variablen.
Wenn es hilft, können wir jeden Ausdruck verbieten, der mit anderen numerischen Werten als . dh nicht noch noch :x 2 3 x 4
- Multilinear , keine anderen Potenzen als : x + x y ≡ x 1 + x 1 y 1 ist in Ordnung, aber nicht x 2 + x 3 y 4 , und nichts, was als das dargestellt werden könnte, wie in einer vollständigen Ausdehnung zur Summe -der-Produkte, zB nicht x ( x + y ) ≤ x 2 + y ;
- alle eins , keine anderen Koeffizienten als : x + x y ≡ 1. x + 1. x y ist OK, aber nicht 2 x + 3 x y , und nichts, was als das dargestellt werden könnte, wie bei einer vollen Ausdehnung auf Produktsumme zB nicht a ( x + y ) + x ( a + b ) ≤ 2 a x + a y + b x ; und
- Keine anderen Konstanten als : Wiederum in der vollständig erweiterten Produktsumme, z. B. nicht ( a + 1 ) + ( b + 1 ) ≡ a + b + 2
Gibt es einen effizienten Algorithmus, um festzustellen, ob zwei Ausdrücke äquivalent sind?
Zur Veranschaulichung hier ein ineffizienter Brute-Force-Algorithmus mit exponentieller Zeit:
Erweitern Sie beide Ausdrücke vollständig zu einer Produktsumme , die leicht auf Gleichwertigkeit überprüft werden kann (ignorieren Sie einfach die Reihenfolge, da Commute / Associate die Reihenfolge ändern kann).
zB
a ( x + y ) + b ( x + y ) → a x + a y + b x + b y
Dies scheint ein bekanntes Problem zu sein - selbst Schülern werden manuelle Lösungswege vermittelt. Es wird auch durch automatisierte Theoremprüfer / -prüfer gelöst, die sich jedoch auf komplexere Aspekte konzentrieren.
Hier ist ein funktionierender automatisierter Online-Theorembeweiser: http://tryacl2.org/ , der die Gleichwertigkeit zeigt, indem eine Abfolge von Commute / Associate / Distribute usw. gefunden wird:
? --- 188 Schritte
(thm (= (+ (* x y) x y) (+ x (* y (+ x 1))) ))
? --- 325 Schritte
(thm (= (+ y (* x (+ y 1))) (+ x (* y (+ x 1))) ))
Dies ist meine erste Frage, also lass es mich bitte wissen, wenn ich den falschen Ort, die falschen Tags, die falsche Art zu beschreiben / zu fragen usw. gewählt habe. Danke!
NB: Diese Frage wurde als Antwort auf Kommentare umgeschrieben.
Vielen Dank an alle Antwortenden! Ich habe viel gelernt.