이 프로젝트는 node.js에서 인공 지능 자동화 계획 라이브러리 스트립을 사용하는 데모입니다.
https://stripsfiddle.meteorapp.com에서 온라인으로 사용해 보세요.
npm install strips
STRIPS 자동 계획을 처음 사용하는 경우 시작하는 데 도움이 되는 훌륭한 튜토리얼이 있습니다.
다음 예에서는 목표 달성을 위한 최적의 조치 세트를 식별하여 계획 문제를 해결하는 방법을 보여줍니다. 예를 들어 블록 쌓기, 하노이 타워, 심지어 스타크래프트까지 AI로 해결할 수 있습니다(아래 참조, 꽤 깔끔합니다!).
Blocks World 도메인의 몇 가지 예가 이 프로젝트에 포함되어 있으며, AI는 일련의 테이블에서 블록을 이동하고 쌓는 일련의 단계를 성공적으로 계획할 수 있습니다.
AI 계획은 PEG.js 문법 시트를 사용하여 간단한 도메인을 처리하고 간단한 STRIPS 문제를 사용하여 결과를 실행하는 방식으로 작동합니다.
도메인 및 문제 PDDL 파일은 PEG.js를 통해 구문 분석되어 지정된 도메인에 대한 JSON 개체를 생성합니다. 그런 다음 JSON을 처리하여 주어진 문제 상태 내에서 적용 가능한 작업을 식별합니다. 그런 다음 작업이 현재 상태에 적용되어 새로운 상태 세트가 생성됩니다. 이 프로세스는 반복되며, 새 상태에 대해 적용 가능한 작업이 식별되고, 적용되며, 추가로 생성된 새 상태가 생성됩니다. 그런 다음 A* 알고리즘을 사용하여 가능한 상태 및 작업의 결과 트리를 탐색하여 문제에 지정된 대로 목표 상태를 달성하기 위한 최적의 단계 집합을 찾을 수 있습니다.
도메인 | 문제 블록 a, b를 테이블 x에서 테이블 y로 이동합니다. 한 테이블에 여러 블록이 허용됩니다. 사용 가능한 유일한 작업은 "이동"입니다.
도메인 | 문제 블록 a, b를 테이블 x에서 테이블 y의 스택 ab로 이동합니다. 한 테이블에 여러 블록이 허용됩니다. 사용 가능한 작업에는 "이동", "스택" 및 "스택 해제"가 포함됩니다.
도메인 | 문제 테이블 x의 블록 ba를 테이블 y의 스택 ab로 스택 해제합니다. 한 테이블에 여러 블록이 허용됩니다. 사용 가능한 작업에는 "이동", "스택" 및 "스택 해제"가 포함됩니다.
도메인 | 문제 재미있는 것! 테이블 1의 블록 ba를 테이블 3의 스택 ab로 언스택합니다. 테이블에는 하나의 블록 또는 스택만 허용됩니다. AI는 테이블 3에 쌓이는 올바른 순서를 설정하는 동안 일시적으로 테이블 2로 블록을 이동할 계획을 세워야 합니다. 사용 가능한 작업에는 "이동", "스택" 및 "스택 해제"가 포함됩니다.
블록은 테이블 1에 ab 쌓입니다. 목표는 테이블 2에 ab 쌓는 것입니다. 테이블당 하나의 블록 또는 스택만 허용됩니다. 해결책은 다음과 같습니다.
*** Solution found in 6 steps!
1. unstack a b t1 t2
2. move b t1 t3
3. move a t2 t1
4. move b t3 t2
5. move a t1 t3
6. stack a t3 b t2
*** Solution found in 5 steps!
1. unstack a b t1 t2
2. move b t1 t3
3. move a t2 t1
4. move b t3 t2
5. stack a t1 b t2
*** Solution found in 5 steps!
1. unstack a b t1 t2
2. move a t2 t3
3. move b t1 t2
4. move a t3 t1
5. stack a t1 b t2
*** Solution found in 4 steps!
1. unstack a b t1 t2
2. move a t2 t3
3. move b t1 t2
4. stack a t3 b t2
*** Solution found in 4 steps!
1. unstack a b t1 t3
2. move b t1 t2
3. move a t3 t1
4. stack a t1 b t2
*** Solution found in 3 steps!
1. unstack a b t1 t3
2. move b t1 t2
3. stack a t3 b t2
Blocks World Sussman Anomaly에 대한 AI 솔루션은 다음과 같습니다.
*** Solution found in 3 steps!
1. unstack2 c a x
2. stack2 b c x
3. stack3 a b c x
이제 재미를 느껴보세요. 다음은 스타크래프트 도메인입니다. 임무는 막사를 건설하는 것이 었습니다. 저는 원래 전투순양함을 만들고 싶었지만 (경험적 검색 없이는) 시간이 너무 오래 걸렸습니다.
*** Solution found in 8 steps!
1. move scv sector-a mineral-field-b
2. collect-minerals scv mineral-field-b
3. move scv mineral-field-b sector-b
4. build-supply-depot scv sector-b
5. move scv sector-b mineral-field-a
6. collect-minerals scv mineral-field-a
7. move scv mineral-field-a sector-a
8. build-barracks scv sector-a sector-b
한 단계 더 나아가 해병 훈련을 위한 AI 솔루션이 있습니다.
- Solution found in 11 steps!
1. move scv sector-a mineral-field-a
2. collect-minerals scv mineral-field-a
3. move scv mineral-field-a sector-b
4. build-supply-depot scv sector-b
5. move scv sector-b mineral-field-b
6. collect-minerals scv mineral-field-b
7. move scv mineral-field-b sector-a
8. build-barracks scv sector-a sector-b
9. move scv sector-a mineral-field-c
10. collect-minerals scv mineral-field-c
11. train-marine scv sector-a
MIT
코리 베커 http://www.primaryobjects.com/kory-becker