체인의정석

1차 논리 , First Order Logic 에 대해 이해해보자! 본문

빅데이터&인공지능/인공지능

1차 논리 , First Order Logic 에 대해 이해해보자!

체인의정석 2023. 11. 4. 11:14
728x90
반응형

논문 같은걸 읽다보면 복잡한 기호들이 있다. 이런걸 읽으려면 어떻게 할지 고민하고 있었는데 인공지능 수업시간에 딱 첫 주문 로직부터 배우는 부분이 상황을 수식을 표현하는 것이였다.

 

 

먼저 기본 로직들의 의미를 살펴보도록 하겠다.

 

  1. 양화자 (Quantifiers):
    • (전칭 양화자, Universal Quantifier): "모든"이라는 의미로, '∀x, P(x)'는 "모든 x에 대해 P(x)가 참이다"라는 의미입니다.
    • (존재 양화자, Existential Quantifier): "어떤 것이 존재하여"라는 의미로, '∃x, P(x)'는 "어떤 x가 존재하여 P(x)가 참이다"라는 의미입니다.
  2. 명제 연산자 (Propositional Connectives):
    • (논리곱, Conjunction): "그리고"라는 의미로, 'P ∧ Q'는 "P이면서 Q이다"입니다.
    • (논리합, Disjunction): "또는"이라는 의미로, 'P ∨ Q'는 "P이거나 Q이다"입니다.
    • ¬ (부정, Negation): "아니다"라는 의미로, '¬P'는 "P가 아니다"입니다.
    • (조건부, Conditional): "만약 ...이면"이라는 의미로, 'P → Q'는 "P이면 Q이다"입니다.
    • (양조건부, Biconditional): "당연히 ...는"이라는 의미로, 'P ↔ Q'는 "P이면서 Q이고, Q이면서 P이다"입니다.
  3. 관계 (Relations) 및 함수 (Functions):
    • 관계와 함수는 변수나 상수들 간의 특정한 관계나 연산을 나타내는데 사용됩니다. 예를 들어, 'R(x, y)'는 x와 y가 어떤 관계 R을 가지고 있음을 나타내며, 'f(x)'는 x에 함수 f를 적용한 결과를 나타냅니다.
  4. 개체 상수 (Constants) 및 변수 (Variables):
    • 개체 상수는 특정 개체를 지칭하는데 사용되며, 예를 들어 'a', 'b', 'c' 등이 있습니다.
    • 변수는 어떤 개체를 대표하는데 사용되며, 예를 들어 'x', 'y', 'z' 등이 있습니다.
  5. 괄호 (Parentheses):
    • 괄호 '(', ')'는 연산의 우선 순위를 명시하는데 사용됩니다.

이러한 기호들을 조합하여 1차 논리의 수식을 만들 수 있습니다. 예를 들어, ∀x, ∃y, R(x, y)는 "모든 x에 대해 어떤 y가 존재하여 x와 y는 관계 R을 가진다"라는 의미를 가지게 됩니다.

 

출처 : 챗 GPT

 

이러한 기본 기호들을 익히고 나서 다른 분의 블로그를 보고 학습하도록 하겠다.

다른 블로그들에 잘 나와있는데

Object, Relation, Function 이렇게 3가지가 기본이라고 한다.

객체, 관계 , 그리고 함수이다.

 

1차 논리의 경우 객체들과 관계를 중점으로 구성이 된다고 한다.

 

- 객체(Objects): 사람, 집, 수, 이론, 색, 야구, 전쟁, 세기, ...

- 관계(Relations): 빨갛다. 둥글다, 가짜, 다층, ... / 형제이다, ~보다 크다, ~안에, ~의 일부, ...

- 함수(Functions): ~의 아버지, ~의 절친, ~보다 하나 많다, ~의 시작, ...

출처 : https://doorbw.tistory.com/76

 

인공지능(AI) #8_ 1차 논리(First-order logic), 한정사(Quantification)

안녕하세요.이번 포스팅부터는 1차 논리(first-order logic)에 대해서 살펴봅니다. 우리는 지난 포스팅에서 명제논리를 사용하여 지식 기반 에이전트가 자신이 속한 세계를 표현하는 방법과 다음에

doorbw.tistory.com

 

 

Function은 value를 리턴하고, Realtion은 true/false를 리턴한다고 한다.

 

- 존재론적 함의 (ontological commitment) 과 인식론적 함의(epistemological)

논리는 위와 같은 기준으로 나뉠 수 있다는데 다음과 같은 특징이 있다.

존재론적 - 객체들과 그 관계들로 이루어짐

인식론적 - 하나의 문장은 하나의 사실을 나타냄

출처 : https://doorbw.tistory.com/76

기호의 종류는 아래 3가지라고 한다.

- 객체를 나타내는 상수 기호(Constant symbol)

- 관계를 나타내는 술어 기호(Predicate symbol)

- 함수를 나타내는 함수 기호(Function symbol)

출처 : https://doorbw.tistory.com/76

 

Term : 하나의 객체를 의미

Atomic Sentence : Term + 기호 로 이루어진 문장, 더 복잡한 구조로 Complex Sentence로도 사용가능 이 경우 괄호가 여러개인 수식

Universal Quntification : 전칭 한정사 , 객체의 이름을 일일히 작성하는 대신 한번에 칭하는 것 (전칭)

 

모든 왕은 => 사람이다.

예를 들어, 책을 보는 사람은 모두 똑똑하다를 나타내면,

Ax readBook(x) => smart(x)

입니다. 하지만, 

Ax readBook(x) ∧ smart(x)

와 같이 나타내면, 우리가 의도했던 바와 달리, 세상에 존재하는 모든 것이 smart 하게 됩니다.

다시말해, 아래의 문장은, 모든 사람은 책을 읽고 모든 사람은 똑똑하다라는 의미를 나타냅니다.
출처 : https://doorbw.tistory.com/76

 

Existential quantification : 존재 한정사로 일부 객체들에 대한 주장을 표현

전청 한정사가 모든 해당 객체를 한번에 전칭하는 것이라면 존재 한정사는 일부에 대한 표현을 의미한다고 한다.

출처 :  https://doorbw.tistory.com/76

위 블로그 글에 나온 것 처럼 ~를 만족하는 x가 존재한다 나 어떤 x에 대해 라고 읽는 다면 최소 1개의 x는 존재한다. 이런식으로 Ex를 사용하면 된다고 한다.

 

한정사의 중첩 :

출처 :  https://doorbw.tistory.com/76

해당 블로그를 보니 어려운 수식도 조금은 이해가 갔다. 결국 객체를 지칭할때 저런 한정사들을 사용하며 전체를 지칭할지 일부를 지칭할지를 나타내기에 뒤에 내용이 같더라도 한정사에 따라 내용이 달라진다는 것으로 이해했다.

 

 

 

728x90
반응형
Comments