프로그램이 주어진 환경에 대하여
통계적으로 올바른 논리를 발견할 수 있다면.
성공적으로 게임을 할 수 있다.
턴제게임을 가정하자.
게임의 화면을
x*y개의 원소로 둔다면.
이번시점의 게임화면은 곧 하나의 거대한 상태공간으로 생각할 수 있다.
또한 다음턴의 게임화면도 하나의 거대한 상태공간으로 생각할 수 있다.
이번턴에 특정 위치에서 특정 사건이 일어난것을통해
다음 턴에 특정 위치에서 특정 사건이 일어날것임을 나타내는 논리가 존재가능하다면,
현재의 점수와 행동또한 원소의 일부로 놓고
어떤 행동을 취해야 점수가 올라갈 것인지를 나타내는 논리또한 존재가능할 것이다.
따라서 임의의 상태공간이 주어졌을때
공간내부의 옳은 논리를 빠르고 효율적으로 탐색가능한 알고리즘이 고안된다면.
이는 곧 일반 게임을 풀 수 있는 알고리즘으로 사용 가능하다.
범용알고리즘이다.
그러나 일반논리탐색 프로그램을 개발하기 위해선
우리는 3가지 난재를 해결해야만한다.
첫째는 n개의 원소가 있을때 이들간에 존재하는 논리를 모두 기존 bool 논리로 표현가능한가를 증명하는것이다.
둘째는 3개이상의 상태를 가진 원소를 처리하는 논리를 고안하거나.
혹은 3개이상의 상태를 가진 원소를 2개의 상태를 가진 원소로 변환한 뒤 관련 논리를 구성하는 방법을 발견하는 것이다.
셋째는 n차 논리에 대한 시간 및 공간복잡도의 해결이다.
논리에도 차원이 있다.
일반적인 논리를 1차라고 한다면,
논리에 대한 논리는 2차에 해당한다.
이와같이 n차 논리가 존재가능한데,
그러한 높은 차수의 논리를 사용하는 이유는.
n차 논리는 2^n ~ n+1 개의 원소에 대한 논리를 표현할 수 있기 때문이다.
첫째 문제의 해결책으로서 생각했으나.
내가 계산해 본 결과 n차 논리의 갯수는 일반적으로
4^n*1차논리갯수^2n에 달했다.
논리의 전수조사는 명백히 불가능하다.
계산해보기 전에 유용한 논리를 추려내는 방법을 찾아내는것이 반드시 필요하다.
지금 작성하고 계시는 개념은 미국에서는 1970년대에 해결되었고 한국은 1995년쯤 석사학위 논문으로 유행했던 자동논리생성알고리즘의 일부입니다. 지금은 유행이 지나서 파이썬기반의 머신러닝이 알고리즘생성과 검색 해결을 위해 힘쓰고 있죠