Artificial Intelligence: Assignment 4 Seung-Hoon Na October 24, 2018 1 Planning with Certainty STRIPS은 Planning을 위한 action-centric 표현 방식으로, 한 action마다 precondition과 effect로 구성된다. Precondition: 주어진 action이 수행될때 만족되어야 할 assignment의 집합 Effect: 주어진 action수행 결과 변경되는 features들에 대한 new assignment 의 집합 PDDL (The Planning Domain Description Language은 Planning을 위한 STRIPS 표현 방식에 대한 표준 언어로, 다음과 같은 요소로 구성된다. Objects: Things in the world that interest us. Predicates: Properties of objects that we are interested in; can be true or false Initial state: The state of the world that we start in. Goal specification: Things that we want to be true. Actions/Operators: Ways of changing the state of the world. PDDL로 planning문제를 표현하기 위해서는 STRIPS형태의 action 정의가 포함 된 Domain file과 초기상태와 목표상태가 기술된 Problem file이 작성되어야 한다. PDDL에 대한 보다 자세한 내용은 다음을 참고하시오. - https://courses.cs.washington.edu/courses/cse473/06sp/pddl.pdf 1.1 Planner: LAMA 설치 및 테스트 Problem 1 범용 Planner로 LAMA를 다운로드 받아 설치하여 sample blocks world PDDL 예제에 대해서 구동을 확인하시오. Ubuntu 16.04 이상 환경에 서 설치하고, 구동후 화면상 출력된 내용을 capture하시오. (설치상 오류가 있으면 해결하여 구동가능하도록 할 것 https://github.com/rock-planning/planning-lama sample예제는 blocks world로 domain file과 problem file은 다음과 같다. Domain file (blocksworld.pddl 파일 참고: 1
(define (domain blocksworld (:requirements :strips :typing (:types block (:predicates (on?x - block?y - block (ontable?x - block (clear?x - block (holding?x - block (:action pick-up :parameters (?x - block :precondition (and (clear?x (ontable?x (and (not (ontable?x (not (clear?x (not (holding?x (:action put-down :parameters (?x - block :precondition (holding?x (and (not (holding?x (clear?x (ontable?x (:action stack :parameters (?x - block?y - block :precondition (and (holding?x (clear?y (and (not (holding?x (not (clear?y (clear?x (on?x?y (:action unstack :parameters (?x - block?y - block :precondition (and (on?x?y (clear?x (and (holding?x (clear?y (not (clear?x (not (not (on?x?y Problem file (blocksworld 3facts 파일참고 : (define (problem BW-rand-3 (:domain blocksworld 2
(:objects A B C - block (:init (ontable A (on B A (on C B (clear C (:goal (and (on B C (on C A 위의 blocks world 문제에대한 LAMA planner 구동예는다음과같다. $ cd planning-lama/lama $./translate/translate.py blocksworld.pddl blocksworld_3facts Parsing... [0.000s CPU, 0.002s wall-clock] Instantiating... Normalizing task... [0.000s CPU, 0.000s wall-clock] Generating Datalog program... [0.000s CPU, 0.000s wall-clock]... $./preprocess/preprocess < output.sas Building causal graph... The causal graph is not acyclic. 7 variables of 7 necessary... done $ search/search ffll < output Simplifying transitions... done! Initializing HSP/FF heuristic... Reading invariants from file...... Solution found! unstack c b put-down c unstack b a put-down b pick-up c stack c a pick-up b stack b c Plan length: 8 step(s. Expanded 10 state(s. Generated 20 state(s. Search time: 0 seconds Total time: 0 seconds Problem 2 다음 International Planning Competitions (IPC 에서사용된 tasks 3
들중 3개를 선정하여, 선정된 3개의 문제에 대해 LAMA를 이용하여 구동 확인해보고, 동작 여부를 파악하시오. https://github.com/potassco/pddl-instances/tree/master/ 또한, 선정된 3개의 주어진 planning문제가 간략히 서술하고, domain file, problem file을 분석하여 이해한 코드 내용에 대해서 상세히 기술하시오. 단, 다음 1998 IPC task중 하나인 logistics 도메인은 포함하도록 한다. https://github.com/potassco/pddl-instances/tree/master/ipc-1998/ domains/logistics-round-1-strips Problem 3 다음은 교과서 delivery robot domain의 내용이다. 위의 delivery robot domain에 대해 PDDL domain file과 problem file을 작 성하고 이를 LAMA에 적용하여 결과를 확인하시오 (domain file및 problem files제출 포함. 단, problem files은 다양한 초기/목표 상태를 가정하여 3개 이상 작성하도록 한다. 또한, moving action을 conditional effect가 없도록 다음과 같이 위치에 의 존적인 moving action (position-dependent move을 사용하시오. mc cs, mc of f, mc mr, mc lab mcc cs, mcc of f, mcc mr, mcc lab 1.2 Planner: PDDL 코드 작성 Problem 1 Missionaries and cannibals problem에 대한 PDDL domain file, problem file을 작성하고 LAMA에 기반하여 테스트하시오 (작성된 코드 및 테스트한 결과도 함께 제시되어야 한다. 4
Missionaries and cannibals problem내용은 다음과 같다 (wikipedia에서 발 췌: In the missionaries and cannibals problem, three missionaries and three cannibals must cross a river using a boat which can carry at most two people, under the constraint that, for both banks, if there are missionaries present on the bank, they cannot be outnumbered by cannibals (if they were, the cannibals would eat the missionaries. The boat cannot cross the river by itself with no people on board. And, in some variations, one of the cannibals has only one arm and cannot row. Problem 2 Jealous husbands problem에 대한 PDDL domain file, problem file을 작성하고 LAMA에 기반하여 테스트하시오 (작성된 코드 및 테스트한 결과도 함께 제시되어야 한다. Jealous husbands problem내용은 다음과 같다 (wikipedia에서 발췌: In the jealous husbands problem, the missionaries and cannibals become three married heterosexual couples, with the constraint that no woman can be in the presence of another man unless her husband is also present. Under this constraint, there cannot be both women and men present on a bank with women outnumbering men, since if there were, these women would be without their husbands. Therefore, upon changing men to missionaries and women to cannibals, any solution to the jealous husbands problem will also become a solution to the missionaries and cannibals proble 1.3 Forward Planning & Regression Planning Problem 1 Forward planning방식의 pseudo code를 작성하고, 간단한 예를 들어 동작을 시물레이션 하시오. Problem 2 Regression planning방식의 pseudo code를 작성하고, 간단한 예를 들어 동작을 시물레이션 하시오. 본 과제의 평가항목 및 배점은 다음과 같다. 전체 문제 풀이 결과의 정확성 및 가독성 (40점 구현된 PDDL 코드의 정확성 및 완결성 (40점 코드의 Readability 및 쳬계성 (10점 결과 보고서의 구체성 및 완결성 (10점 5