например, ?
Выражения взяты из обычной школьной алгебры, но ограничены арифметическим сложением и умножением (например, ), без инверсий, вычитания или деления. Буквы являются переменными.
Если это поможет, мы можем запретить любое выражение, представляемое с числовыми значениями, отличными от ; т.е. не х 2, ни 3 х, ни 4 :
- полилинейный , нет степеней, отличных от : x + x y ≡ x 1 + x 1 y 1 в порядке, но не x 2 + x 3 y 4 , и не все, что может быть представлено в этом виде, как в полном разложении для суммирования -произведений, например, не x ( x + y ) ≡ x 2 + y ;
- все одно , без коэффициентов, кроме : x + x y ≡ 1. x + 1. x y в порядке, но не 2 x + 3 x y , и не все, что может быть представлено так, как в полном раскрытии сумма-оф-продукты , например , не более ( х + у ) + х ( + б ) ≡ 2 х + у + Ь х ; и
- нет констант, кроме : опять же, в полностью расширенной сумме произведений, например, не ( a + 1 ) + ( b + 1 ) ≡ a + b + 2
Существует ли эффективный алгоритм для определения эквивалентности двух выражений?
Для иллюстрации приведем неэффективный алгоритм грубой силы с экспоненциальным временем:
полностью разверните оба выражения до суммы продуктов , которую можно легко проверить на эквивалентность (просто игнорируйте порядок, так как коммутировать / связать можно переупорядочить).
например,
a ( x + y ) + b ( x + y ) → a x + a y + b x + b y
Это кажется общеизвестной проблемой - даже старшеклассников учат ручным способам ее решения. Это также решается автоматическими средствами проверки / проверки теорем, но они концентрируются на более сложных аспектах.
Вот работающий онлайн-автомат для проверки теорем: http://tryacl2.org/ , который показывает эквивалентность, находя последовательность коммутирующих / ассоциированных / распространяющих и т. Д .:
? --- 188 шагов
(thm (= (+ (* x y) x y) (+ x (* y (+ x 1))) ))
? --- 325 шагов
(thm (= (+ y (* x (+ y 1))) (+ x (* y (+ x 1))) ))
Это мой первый вопрос здесь, поэтому, пожалуйста, дайте мне знать, если я выбрал не то место, неправильные теги, неправильный способ описания / запроса и т. Д. Спасибо!
NB: этот вопрос был переписан в ответ на комментарии.
Спасибо всем респондентам! Я многому научился.