표현 동등성을위한 효율적인 알고리즘이 있습니까?


14

예를 들어 xy+x+y=x+y(x+1) ?

표현은 일반적인 고등학교 대수에서 나왔지만 , 역수, 빼기 또는 나누기가없는 산술 덧셈과 곱셈 (예 : )으로 제한됩니다. 문자는 변수입니다.2+2=4;2.3=6

도움이된다면 이외의 숫자 값으로 표현 가능한 표현은 금지 할 수 있습니다 . 즉 또는 또는 아닙니다 .1x23x4

  • multilinear , 이외의 거듭 제곱 없음 : 은 괜찮지 만 는 아닙니다. 제품 합계로의 완전 확장, 예 : ; 1x+xyx1+x1y1x2+x3y4x(x+y)x2+y
  • 모두 하나 , 이외의 계수 는 없음 : 는 괜찮지 만 는 아니고 합으로의 전체 확장에서와 같이 표현할 수있는 것은 아닙니다. 예를 들어 ; 과 1x+xy1.x+1.xy2x+3xya(x+y)+x(a+b)2ax+ay+bx
  • 완전 확장 된 곱의 합에서 이외의 다른 상수 없음 :1(a+1)+(b+1)a+b+2

Q. 이 같은지 확인하는 효율적인 알고리즘이 있습니까?


다음은 지수 시간이있는 비효율적 인 무차별 대입 알고리즘입니다.

두 표현식을 모두 sum-of-products로 완전히 확장하면 동등성을 쉽게 확인할 수 있습니다 (통근 / 연합이 재정렬 될 수 있으므로 순서를 무시하십시오).

예 : a 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


이것은 잘 알려진 문제인 것 같습니다. 심지어 고등학생조차도 수동으로 해결하는 방법을 배웁니다. 또한 자동 정리 프로 버 / 체커로 해결되지만 더 복잡한 측면에 집중합니다.

다음은 온라인 자동 정리 증명 기능입니다. http://tryacl2.org/ 는 출퇴근 / 연합 / 배포 등의 시퀀스를 찾아서 동등성을 보여줍니다.

? --- 188 단계 xy+x+y=x+y(x+1)
(thm (= (+ (* x y) x y) (+ x (* y (+ x 1))) ))

? --- 325 단계y+x(y+1)=x+y(x+1)
(thm (= (+ y (* x (+ y 1))) (+ x (* y (+ x 1))) ))

이것은 내 첫 번째 질문이므로 잘못된 장소, 잘못된 태그, 잘못된 설명 / 요청 방법 등을 선택했는지 알려주십시오. 감사합니다!
주의 :이 질문은 댓글에 대한 답변으로 다시 작성되었습니다
. 모든 응답자에게 감사합니다! 나는 많은 것을 배웠다.


3
여기에 대한 질문은 약간의 설명이 필요합니다. 어떤 분야를 운영하고 있습니까? 예 : "같은 개체 "와 " B는 "필드 또는 변수의 요소는 표현에? 실제로 필드입니까 (즉, 더하기와 곱하기에는 반대가 있습니까)? ( a 1 + b 1 ) ( a 2 + b 2 ) ( a n + b n ) 에는 기하 급수적으로 많은 용어가 있으므로 제품 합계는 도움이되지 않습니다 . ab(a1+b1)(a2+b2)(an+bn)
David Richerby

4
객체가 변수이고 뺄셈이 허용되는 경우 Schwartz-Zippel lemma 의 무작위 다항식 시간 알고리즘을 갖는 다항식 항등 테스트를 본질적으로 요구 합니다. iff f ( x ) g ( x ) = 0 이며 기본적으로 아이디어는 0이 아닌 다항식에 뿌리가 많지 않기 때문에 루트를 임의로 추측하기 시작하면 그리고 많은 근을 찾으면 다항식이 동일하게 0 일 확률이 높습니다. f(x)=g(x)f(x)g(x)=0
데이비드 리처 비

2
아무도 이것을 언급하지 않은 것에 대해 놀랐지 만 "NP에 있다면 다항식 알고리즘을 찾는 것에 대해 걱정할 필요가 없습니다"는 말이되지 않습니다. P의 모든 문제는 NP에도 있습니다. 문제가 NP-complete (또는 -hard)인지 묻고 싶을 것입니다.
Tom van der Zanden

2
기본 사항에 어려움을 겪는 경우 참조 질문 이 도움이 될 수 있습니다.
Raphael

2
@hyperpallium 언어 (즉, 의사 결정 문제)가 NP에 있는지 묻기 전에 이것이 의미하는 바를 이해하는 것이 가장 좋습니다. 아마도 라파엘과 관련된 참고 질문이 도움이 될 것입니다.
유발 Filmus

답변:


9

문제는 효율적인 랜덤 알고리즘이있는 다변량 다항식의 제로 테스트로 줄입니다.

식은 모두 다변량 다항식입니다. 분명히 표현은 다음 규칙에 따라 작성됩니다. (a) 가 변수이면 x 는 표현식입니다. (b) c 가 상수이면 c 는 표현식입니다. (c) e 1 , e 2 가 표현식이면 e 1 + e 2e 1 e 2 가 표현식입니다. 그것이 실제로 의도 한 것이라면, 모든 표현은 변수에 대한 다변량 다항식입니다.xxcce1,e2e1+e2e1e2

이제 두 표현식이 같은지 알고 싶습니다. 두 변수 다항식 여부를 테스트이 금액은 동일합니다 주어진 P 2 ( X 1 , ... , X의 N ) ,이 두 다항식은 동일합니다 있는지 알고 싶습니다. 빼고 결과가 0인지 확인하여이를 테스트 할 수 있습니다.p1(x1,,xn)p2(x1,,xn)

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

이제 q 가 0 다항식 인 경우에만 는 동일합니다 .p1,p2q

가 동일하게 0 인지 테스트하는 것은 다변량 다항식의 0 테스트 문제입니다. 이를위한 효율적인 알고리즘이 있습니다. 예를 들어, 하나의 예시적인 알고리즘을 평가하는 것이다 (Q)을 ( X 1 , ... , X의 N ) 다양한 랜덤 값으로 X 1 , ... , X N . 당신이 가치 발견하면 X 1 , ... , X n은 같은 그 Q를 ( X 1 , ... , X의 N ) , 당신은 알고 Q를qq(x1,,xn)x1,,xnx1,,xnq(x1,,xn)q 는 동일하지 않으며, 즉 p 1 , p 2 는 동일하지 않다. 많은 실험 후에 그들은 모두 0 인 경우에, 당신은 그 결론을 내릴 수 q는 (경우 동일 제로 q는 그 시험의 모든 제로가 기하 급수적으로 낮게 할 수있다 얻을 수 있음을 동일하게 0이 아닌 확률). 반복 횟수는 q 의 정도와 관련이 있습니다 . 자세한 내용은 다항식 아이덴티티 테스트 관련 문서를 참조하십시오.p1,p2qqq

예를 들어 https://en.wikipedia.org/wiki/Schwartz%E2%80%93Zippel_lemmahttp://rjlipton.wordpress.com/2009/11/30/the-curious-history-of-the-를 참조 하십시오. 슈왈츠-지펠-엘레 마 /

이 알고리즘은 유한 필드에서 작업하는 경우에 적용됩니다. 작업중인 필드 / 링과 이러한 표현식을 공식 표현식 (예 : 다항식을 추상 객체로) 또는 함수로 취급하는지 여부는 명시하지 않았습니다 . 유한 필드를 작업하는 경우 위의 방법이 즉시 적용됩니다.FnF

식을 공식 객체로 취급하는 경우 식은 정수 계수를 갖는 다변량 다항식과 같습니다. 큰 랜덤 소수 을 선택하고 등가 모듈로 r , 즉 Z / r Z 필드에서 테스트 하여 이들의 동등성을 테스트 할 수 있습니다 . r의 다른 임의의 값으로이 polynomially를 여러 번 반복하면 이러한 공식 표현식의 동등성을 테스트하기위한 효율적인 무작위 알고리즘을 가져와야합니다.rrZ/rZr


1
반면에, 동일하게 0 인 각 표현에 대해, 그 표현이 동일하게 0이라는 증거 가 너무 길다는 것을 증명하기어렵습니다 .

@RickyDemer, 좋은 지적입니다! 좋은 관찰. 나는 그 질문을 증명하는 것이 아니라 동등성 테스트에 대해 묻는 것으로 해석했지만, 그것은 아주 좋은 관찰입니다. (실제로 등가의 증거를 보여주고 싶다면, "증거"에 대한 정의에 대해 암호화 가정을 기꺼이 할 경우 그러한 증거를 제시하는 것이 가능하다고 생각합니다. 랜덤 오라클 모델.)
DW

1
감사! 나는 그것들을 역, 나눗셈 또는 뺄셈없이 공식 객체로 취급하고 있습니다 (그러나이 질문에 고등학교 대수학을 사용하면 이미 해결되었을 가능성이 높습니다). 큰 무작위 소수 계속 선택 하면 표현식이 기본 정수 세트 [ 0 .. r - 1 ]에 대해 유한 필드 인 것처럼 취급합니다 . 그 위키 링크는 이 0 테스트에 대한 알려진 지수 지수 결정 알고리즘이 없다고 말합니다 . 그것이 내 문제에 해당되는지 아십니까? r[0..r1]
hyperpallium

1
@ hyperpallium, 그렇습니다. 그것이 바로 제가 의미하는 바입니다. 예, 귀하의 문제에도 적용됩니다. 그렇기 때문에 효율적인 결정 론적 알고리즘이 없지만 효율적인 무작위 알고리즘이 있습니다.
DW

위의 의견에서 지적했듯이 OP는 유한 필드가 아니라 정식 반 링에서 작동합니다. 이것은 덧셈의 역수가 존재 함을 보증하지 않으므로, 0과 같은지를 검사하기 위해 식을 "빼는"것은 유효한 연산이 아닙니다.
apnorton

0

질문에서 1의 힘 , 1의 상수1의 상수 제약 을 추적하려면 :

이것들은 다항식 아이덴티티 테스트의 문제를 부분 집합으로 정의합니다. 분명히 일반적인 문제를 해결하는 기술로 해결할 수 있습니다. 문제는 더 쉽게 해결할 수있는 하위 집합을 형성하는지 여부입니다.

(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 and again terms are combined, making a smaller simpler problem. This combining of terms is a form of dynamic programming.

That is, the possibility of combining terms, creating a non-one coefficient, makes the problem easier not harder.

(Although there is more work in calculation in multiplying non-one coefficients)

non-one constants are included in the above argument by considering constants as variables with zero exponent.

one-power I don't think this makes any difference. Although non-one exponents can be created in more than one way (e.g. a4=a2a2=a1a3), and this can lead to overlap and combination (as in the Binomial Theorm/Pascal's triangle above), actual combination is only possible if non-one coefficients are allowed.

The above is not a formal or rigorous argument. It rests on an assumption about what makes the problem difficult. But it does seem to me that combining terms only makes for an easier problem - so preventing this by the one coefficient constraint is not going to make the subset easier.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.