İfade denkliği için etkili bir algoritma var mı?


14

örneğin ?xy+x+y=x+y(x+1)

İfadeler sıradan lise cebirindendir, ancak ters, çıkarma veya bölme olmadan aritmetik toplama ve çarpma (örn. ) ile sınırlıdır . Harfler değişkenlerdir.2+2=4;2.3=6

Eğer yardımcı olursa, dışındaki sayısal değerlerle temsil edilen herhangi bir ifadeyi yasaklayabiliriz ; yani x 2 veya 3 x veya 4 değil :1x23x4

  • çok hatlı , 1'den başka güç yok : x + x y x 1 + x 1 y 1 tamam, ancak x 2 + x 3 y 4 değil ve toplam olarak tam bir genişlemede olduğu gibi temsil edilebilecek hiçbir şey değil -of-ürün olup, örneğin x ( x + y ) x 2 + y ; 1x+xyx1+x1y1x2+x3y4x(x+y)x2+y
  • hepsi bir , 1'den başka katsayı yok : x + x y 1. x + 1. x y tamam, ancak 2 x + 3 x y değil ve tam bir genişlemede olduğu gibi temsil edilebilecek hiçbir şey değil ürün toplamı örneğin bir ( x + y ) + x ( a + b ) 2 a x + a y + b x değil ; ve 1x+xy1.x+1.xy2x+3xya(x+y)+x(a+b)2ax+ay+bx
  • 1'den başka sabit yok : yine, tamamen genişletilmiş ürün toplamında, örneğin ( a + 1 ) + ( b + 1 ) a + b + 21(a+1)+(b+1)a+b+2

İki ifadenin eşdeğer olup olmadığını belirlemek için etkili bir algoritma var mı?Q.


Bunu göstermek için, üstel zamana sahip verimsiz bir kaba kuvvet algoritması:

her iki ifadeyi de eşdeğerlik açısından kolayca kontrol edilebilecek ürün toplamına kadar genişletin (işe gidip gelme / ilişkilendirme yeniden sipariş verebildiğinden siparişi dikkate almayın).

örneğin
a ( x + y ) + b ( x + y ) a x + a y + b x + b y(a+b)(x+y)ax+ay+bx+by
a(x+y)+b(x+y)ax+ay+bx+by


Bu iyi bilinen bir sorun gibi görünüyor - lise öğrencilerine bile bunu çözmek için manuel yollar öğretiliyor. Ayrıca otomatik teorem kanıtlayıcıları / denetleyicileri tarafından çözüldü, ancak daha sofistike yönlere odaklanıyorlar.

: Burada çalışan bir çevrimiçi otomatik teoremi prover var http://tryacl2.org/ , gösterileri gidip / ilişkili bir dizi bularak denklik / vb dağıtmak:

? --- 188 adım xy+x+y=x+y(x+1)
(thm (= (+ (* x y) x y) (+ x (* y (+ x 1))) ))

? --- 325 adımy+x(y+1)=x+y(x+1)
(thm (= (+ y (* x (+ y 1))) (+ x (* y (+ x 1))) ))

Bu benim ilk sorum, bu yüzden lütfen yanlış yeri, yanlış etiketleri, açıklama / sorma yanlış yolunu seçtiysem bana bildirin. Teşekkürler!
Not: Bu soru yorumlara yanıt olarak yeniden yazılmıştır
Tüm yanıtlayanlara teşekkürler! Çok şey öğrendim.


3
Buradaki sorunun biraz açıklığa ihtiyacı var. Hangi alanda faaliyet gösteriyorsunuz? " " ve " b " gibi nesneler alanın ifade öğelerinde mi yoksa değişkenlerde mi? Aslında bir alan mı (yani toplama ve çarpmanın tersi var mı)? ( A 1 + b 1 ) ( a 2 + b 2 ) ( a n + b n ) ' nin katlanarak birçok terimi olduğu için ürün toplamının yardımcı olmadığını unutmayın. ab(a1+b1)(a2+b2)(an+bn)
David Richerby

4
Nesneler değişkense ve çıkarmaya izin veriliyorsa, esasen Schwartz-Zippel lemması tarafından rastgele bir polinom zaman algoritması olan polinom kimlik testi soruyorsunuz . iff f ( x ) - g ( x ) = 0 ve temel fikir, aynı sıfıra sahip olmayan bir polinomun çok fazla köke sahip olmamasıdır, eğer kökleri rastgele tahmin etmeye başlarsanız ve çok sayıda kök bulursanız, polinomunuzun aynı şekilde sıfır olma olasılığı yüksektir. f(x)=g(x)f(x)g(x)=0
David Richerby

2
Henüz kimsenin bundan bahsetmediğine şaşırdım, ancak "NP'de ise polinom algoritması bulma konusunda endişelenmem gerekmiyor" mantıklı değil. P'deki her problem NP'de de var. Muhtemelen sorunun NP-tam (veya -hard) olup olmadığını sormak istediniz.
Tom van der Zanden

2
Temel bilgilerle mücadele ederseniz, referans sorularımız size yardımcı olabilir.
Raphael

2
@hyperpallium Bir dilin (yani bir karar probleminin) NP'de olup olmadığını sormadan önce, bunun ne anlama geldiğini anlamanız en iyisidir. Belki de Raphael'in bağlantı kurduğu referans sorular yardımcı olabilir.
Yuval Filmus

Yanıtlar:


9

Sorununuz, verimli rasgele algoritmalar bulunan çok değişkenli polinomların sıfır testine indirgenir.

xxcce1,e2e1+e2e1e2

p1(x1,,xn)p2(x1,,xn)

q(x1,,xn)=p1(x1,,xn)p2(x1,,xn).

p1,p2q

qq(x1,,xn)x1,,xnx1,,xnq(x1,,xn)qp1,p2qqq

Örneğin, bkz. Https://en.wikipedia.org/wiki/Schwartz%E2%80%93Zippel_lemma ve http://rjlipton.wordpress.com/2009/11/30/the-curious-history-of-the- schwartz-Zippel-lemması /

FnF

rrZ/rZr


1
Öte yandan, her bir özdeş sıfır ifade için, ifadenin özdeş sıfır olduğuna dair çok uzun olmayan bir kanıt olduğunu kanıtlamak zor olacaktır .

@RickyDemer, harika bir nokta! Güzel gözlem. Soruyu, kanıtlamak yerine denkliği test etme sorusu olarak yorumladım, ama bu çok güzel bir gözlem. (Uygulamada bir denklik kanıtı göstermek istiyorsanız, "kanıt" ın bir tanımı için kriptografik varsayımlar yapmak istiyorsanız, örneğin, rastgele kehanet modeli.)
DW

1
r[0..r1]

1
@hyperpallium, evet tam olarak bunu kastediyorum. Evet, bunun sizin probleminiz için de geçerli olduğuna inanıyorum. Bu yüzden rastgele bir algoritma önerdim - bilinen etkili bir deterministik algoritma olmamasına rağmen, etkili rastgele algoritmalar var.
DW

Yukarıdaki bir yorumda belirtildiği gibi, OP sınırlı bir alanda değil, değişmeli bir dönem içinde çalışmaktadır. Bu, katkı terslerinin varlığının garanti edilmediği anlamına gelir, bu nedenle eşitliği sıfır ile kontrol etmek için ifadeleri "çıkarmak" geçerli bir işlem değildir.
apnorton

0

Sorudaki tek güç , tek katsayı ve tek sabit kısıtlamalarını takip etmek için :

Bunlar, polinom kimlik testi problemini bir alt kümeyi tanımlar. Açıkçası, genel problemi çözen bir teknikle çözülebilirler. Soru, daha kolay çözülebilen bir alt küme oluşturup oluşturmadıklarıdır.

(a+b)n(a+b)(a+b)=aa+ab+ab+bb=aa+2ab+bb(aa+2ab+bb)(a+b)=aaa+2aab+abb+aab+2abb+bbb=aaa+3aab+3abb+bbb

Yani, terimleri birleştirme, tek bir katsayı oluşturma olasılığı, sorunu daha zor değil kolaylaştırır.

(Tek katsayıları çarpmada hesaplamada daha fazla çalışma olmasına rağmen)

sabit olmayanlar sıfır üslü değişkenler olarak düşünülerek yukarıdaki bağımsız değişkenler yukarıdaki bağımsız değişkene dahil edilmez.

a4=a2a2=a1a3

Yukarıdakiler resmi veya titiz bir argüman değildir. Sorunu neyin zorlaştırdığına dair bir varsayım üzerine kuruludur. Ama bana öyle geliyor ki, terimleri birleştirmek daha kolay bir problem yaratıyor - bu yüzden bunu tek bir katsayı kısıtlamasıyla önlemek altkümeyi daha kolay hale getirmeyecek.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.