귀하의 문제는 다음과 같은 간단한 질문을 줄이는 것 같습니다.
두 가지 기능이 주어짐 F,G 기능의 클래스에서 우리는 F(x)=G(x) 모든 x? (즉, 그들은 어디에서나 같은 가치를 가지고 있습니까?)
이 클래스의 함수에 대해 결정 가능한지 모르겠습니다. 그렇다면 문제도 결정할 수 있어야합니다.
문제의 일반적인 접근법은 다음과 같습니다. F(x) 얻을 F′(x), 우리가 있는지 확인 F′(x)=G(x) 모든 x.
핵심 단계는 상징적 차별화입니다. 더 자세히하는 방법을 알아 봅시다. 허용 가능한 함수 클래스를 재귀 적으로 정의 할 수 있습니다.
F(x)::=c|x|ex|log(x)|sin(x)|cos(x)|tan(x)|F1(x)+F2(x)|F1(x)×F2(x)|F1(x)/F2(x)|F1(F2(x))
여기서 는 상수 범위이고 는 함수 범위입니다.cF,F1,F2
그런 다음 미적분의 표준 규칙 (예 : 연쇄 규칙 등)을 사용하여이 클래스의 함수를 상징적으로 구별하기위한 재귀 알고리즘을 고안 할 수 있습니다. 특히, 위의 모든 경우를 처리 할 수 있으며 미분이이 클래스 내에서 함수로 상징적으로 표현 될 수 있음을 재귀 적으로 보여줄 수 있습니다. 예를 들어 :
만약 , .F(x)=cF′(x)=0
만약 , .F(x)=xF′(x)=1
만약 , .F(x)=exF′(x)=ex
경우 , .F(x)=log(x)F′(x)=1/x
만약 , .F(x)=sin(x)F′(x)=cos(x)
경우 , .F(x)=tan(x)F′(x)=1+(tan(x))2
만약 , .F(x)=F1(x)+F2(x)F′(x)=F′1(x)+F′2(x)
만약 , .F(x)=F1(x)×F2(x)F′(x)=F′1(x)F2(x)+F1(x)F′2(x)
만약 , (연쇄 법칙).F(x)=F1(F2(x))F′(x)=F′1(F2(x))F′2(x)
등등. 경우 각각의 경우에, 허용 기능의 클래스에, 다음 그렇습니다 , 그리고 당신은 재귀에 대한 상징적 인 표현을 사용할 수 있습니다 - 이것은로 알려져 상징적 차별화 .F(x)F′(x)F′(x)
마지막으로, 모든 남아있는 것이 있는지 여부를 확인하는 모든 . 그것이 제가 대답의 맨 위에 언급 한 문제입니다.F′(x)=G(x)x
실제로 두 기능이 동일하게 작동하는지 확인하는 간단한 방법이 있습니다. 반복의 랜덤 값 선택 :이 알고리즘이있다 하고 있는지 여부를 확인 의 값을 보유하고있다 . 무작위로 선택된 많은 대해 동등하게 유지되면 출력은 "동일하게 동일합니다". 인 를 찾으면 "그들은 다르다"를 출력합니다.xF(x)=G(x)xxxF(x)≠G(x)
이것이 작동한다고 보장 할 수는 없지만, 많은 기능 클래스에 대해이 절차의 결과는 높은 확률로 정확합니다. 특히, 임의의 변수 표시되는 약간의 분포가 있고 이 클래스의 모든 에 대해 유지 되도록 일부 을 가정합니다. 또한 허용 가능한 함수의 클래스가 (클래스와 마찬가지로) 빼기로 닫혀 있다고 가정하십시오. 그런 다음 위의 절차의 라운드는 최대 확률로 잘못된 대답을 제공합니다 .xXϵ>0Pr[F(X)=0]≥ϵFr(1−ϵ)r
또한 다항식 평등 검정에 대한 무작위 절차가 있으면 문제를 결정할 수 있습니다.
그러한 결과가 특정 기능 클래스에 적용되는지 여부는 묻습니다. 위의 진술은 아마 보류되지 않을 것입니다. 그러나 운이 좋으면 다음과 같은 것을 증명할 수 있습니다.
모든 , 어쩌면 우리는 즉, 실수,에 분포 확률 변수 찾을 수 , 일정한 그러한가, 등 그 클래스에 있고 최대 크기가 " "인 모든 함수 를 보유합니다 .s∈NXsϵs>0Pr[F(X)=0]Fs
이것이 사실이라면, 다항식 평등 테스트를위한 무작위 알고리즘이 있으므로 문제를 결정할 수 있습니다.