문제

(실용적인) 응용 프로그램은 무엇입니까? 통일? 실제 세계에서 실제로 사용되는 곳은 어디입니까?

나는 그것이 실제로 무엇에 관한 것인지, 왜 그것이 인공 지능의 일부로 간주되는지에 대한 전체 아이디어를 이해할 수 없었습니다.

도움이 되었습니까?

해결책

통일은 본질적으로 과정입니다 치환. 나는 그것을 "양방향 일치"라고 불렀다.

Prolog에서는 다른 논리 프로그래밍 언어와 재 작성 논리를 기반으로 직접 언어로 (Maude, 기력, 등 ...)는 자유 (논리적) 변수가 용어/값에 바인딩되는 메커니즘입니다. 동시 프롤로그에서 이러한 변수는 통신 채널로 해석됩니다.

IMO, 그것을 이해하는 더 좋은 방법은 수학의 몇 가지 예제입니다 (통일은 AI의 하위 필드 인 자동화 된 이론 속담 연구의 맥락에서, 예를 들어, 기본 주요 메커니즘이었습니다. 수용 추론 알고리즘). 다음의 예는의 맥락에서 가져온 것입니다. 컴퓨터 대수 시스템 (CAS):

First example:

세트 Q와 2 개의 바이너리 작업 * 및 +가 주어지면 * *는 + if에 대해 왼쪽 분산제입니다.

X * (Y + Z)   =   (X * Y) + (X * Z)   |1|

이것은 규칙을 다시 작성하십시오 (재 작성 규칙 세트는 a 재 작성 시스템).

이 재 작성 규칙을 특정 사례에 적용하려면 다음과 같이 말하십시오.

a * (1 + b)   |2|

우리 하나로 하다 (통일 알고리즘을 통해)이 용어 | 2 | 왼쪽 방향 (LHS)의 | 1 | 그리고 우리는 이것 (의도적으로 사소한) 대체 ( 대부분의 일반 통합제, ):

{X/a, Y/1, Z/b}   |3|

이제 | 3 | ~로 오른편 (RHS)의 | 1 |, 우리는 마침내 다음과 같습니다.

(a * 1) + (a * b)

이것은 단순했고 통일이 무엇을 할 수 있는지 이해하기 위해 조금 더 복잡한 예를 보여줄 것입니다.

Second example:

이 재 작성 규칙에 따라 :

log(X,Y) + log(X,Z)   =>   log(X,Y*Z)   |4|

우리는이 방정식에 적용합니다.

log(e,(x+1)) + log(e,(x-1)) = k   |5|

(LHS | 5 | 통일 LHS | 4 |), 그래서 우리는 이것을 가지고 있습니다 :

{X/e, Y/(x+1), Z/(x-1)}   |6|

X와 X는 두 가지 변수입니다. 여기에는 두 가지 변수 X와 Y가 있습니다. 복합 용어, (x+1) 및 (x-1), 간단한 값이나 변수가 아닙니다.

우리는 이것을 적용합니다 , | | 6 |, to RHS | 4 | 그런 다음 우리는 이것을 | 5 |에 다시 넣었습니다. 그래서 우리는 다음과 같습니다.

log(e,(x+1)*(x-1)) = k   |7|

등등.

(내가 실수하지 않았거나 이것은 신 생물을 더 혼란스럽게 할 수 있기를 바라고 있습니다.)

다른 팁

통일은 주요 메커니즘입니다 입력 유추. 실제로 말하면, 이러한 맥락에서 통일은 손가락의 마모를 크게 줄입니다.

프롤로그, 예를 들어, 통일을 사용하여 규칙을 충족하는 변수에 대한 값을 찾으십시오. 이 설명 예를 들어. 나는 그것이 논리적 프로그래밍 언어의 전형적인 기술이라고 기대하지만, 다른 사람과 경험이 없지만.

통일은 패턴 매칭과 같습니다. 여기서 두 구조를 문지르는 것은 하나의 변수가 다른 구조물의 값을 일치시킬 수 있습니다.

가장 간단한 통일 형태는 정상 언어로 함수를 호출 할 때마다 발생합니다. 발신자는 인수를 가지고 있으며 Callee에는 매개 변수가 있습니다. 매개 변수는 인수에 "바인딩"되며 함수의 인스턴스화를 생성합니다.

또 다른 간단한 통일 형태의 통일 dir x*y*.z* 일부 파일 이름은 아니지만 일부는 일치하지 않습니다.

인공 지능은 추론 엔진을 사용하여 지식의 코퍼스에서 일반적으로 논리의 진술 형태로 추론을 시뮬레이션하려고합니다. 어리석은 예를 선택하기 위해, 당신은 forall(x)(man(x) implies mortal(x)). 그런 다음 "샘 필사자"라고 질문하면 mortal(Sam)?, 당신은 새로운 질문을하는 규칙으로 "Sam a Man"입니다. man(Sam)?

도움이되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top