Programming Assignment: Planning Goal: gaining familiarity with theorem-proving technology.

Slides:



Advertisements
Similar presentations
SETTING UP A PROJECT Adobe Premiere Pro CS6. Getting started… Adobe Premiere Pro project file stores links to all the video and sound files-aka…clips.
Advertisements

Machine Learning Homework
BackTracking Algorithms
Situation Calculus for Action Descriptions We talked about STRIPS representations for actions. Another common representation is called the Situation Calculus.
MAT 3751 Analysis II Winter 2014
Calendar Browser is a groupware used for booking all kinds of resources within an organization. Calendar Browser is installed on a file server and in a.
1 Introduction to Computability Theory Lecture15: Reductions Prof. Amos Israeli.
1 Introduction to Computability Theory Lecture12: Reductions Prof. Amos Israeli.
Reviewing the work of others Referee reports. Components of a referee report Summary of the paper Overall evaluation Comments about content Comments about.
Defining Control Structures
CIS101 Introduction to Computing Week 11. Agenda Your questions Copy and Paste Assignment Practice Test JavaScript: Functions and Selection Lesson 06,
Memory & Storage Architecture Seoul National University Computer Architecture “ Bomb Lab Hints” 2nd semester, 2014 Modified version : The original.
Using MyMathLab Features You must already be registered or enrolled in a current MyMathLab class in order to use MyMathLab. If you are not registered or.
Get up to speed A new file format One more big change in the new version of Word: an improved file format. What does that mean to you? The new file format.
Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 4P. 1Winter Quarter Introduction to UNIX.
 As you complete the assignment, go in order as the earlier bulleted parts provide an easier opportunity for points than the later.  This project is.
Introduction to VBA. This is not Introduction to Excel We’re going to assume you have a basic level of familiarity with Excel If you don’t, or you need.
Introduction to Computers Connie Dalrymple. What is a computer? Sources:
Working with Numbers in Alice - Converting to integers and to strings - Rounding numbers. - Truncating Numbers Samantha Huerta under the direction of Professor.
Microsoft ® Office 2007 Get up to speed with the 2007 system Murray State University College of Education:
An Introduction to Textual Programming
Why do I Need Multiplication? and how can I make it fun to learn?
Back to content Final Presentation Mr. Phay Sok Thea, class “2B”, group 3, Networking Topic: Mail Client “Outlook Express” *At the end of the presentation.
Key Stone Problem… Key Stone Problem… next Set 22 © 2007 Herbert I. Gross.
Object Linking and Embedding
s By Mollie.
Lesson 1 Review Q and A’s.
Moodle (Course Management Systems). Assignments 1 Assignments are a refreshingly simple method for collecting student work. They are a simple and flexible.
Files COP3275 – PROGRAMMING USING C DIEGO J. RIVERA-GUTIERREZ.
How to Create a Professional Video Using Windows Live Movie Maker.
CAD3D Project. SketchUp - Project Create a new SketchUp project called InitialsXX where the XX are your first and last initial. Use the Rectangle tool.
CS 114 – Class 02 Topics  Computer programs  Using the compiler Assignments  Read pages for Thursday.  We will go to the lab on Thursday.
Booting Ubuntu Linux Live CSCI 130 – Fall 2008 Action Lab Dr. W. Jones.
Just as there are many human languages, there are many computer programming languages that can be used to develop software. Some are named after people,
Cs3102: Theory of Computation Class 24: NP-Completeness Spring 2010 University of Virginia David Evans.
CS 320 Assignment 1 Rewriting the MISC Osystem class to support loading machine language programs at addresses other than 0 1.
Moving Around in Scratch The Basics… -You do want to have Scratch open as you will be creating a program. -Follow the instructions and if you have questions.
Introduction to PowerPoint Curriculum Implementation Day Friday, November 3, 2006 K.J. Benoy.
Forms and Server Side Includes. What are Forms? Forms are used to get user input We’ve all used them before. For example, ever had to sign up for courses.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
Unit 1: Java and Eclipse The Eclipse Development Environment.
ISU Basic SAS commands Laboratory No. 1 Computer Techniques for Biological Research Animal Science 500 Ken Stalder, Professor Department of Animal Science.
Change in your CAD Project File - it happens all the time in robotics.
BIT 286: Web Applications Automated Web Testing. Selenium  Selenium Is moving from being Firefox based to being more of a 'normal desktop' program that.
Learning PowerPoint Presenting your ideas as a slide show… …on the computer!
C++ LANGUAGE TUTORIAL LESSON 1 –WRITING YOUR FIRST PROGRAM.
Matthew Glenn AP2 Techno for Tanzania This presentation will cover the different utilities on a computer.
CSE 311 Foundations of Computing I Lecture 28 Computability: Other Undecidable Problems Autumn 2011 CSE 3111.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Debugging tools in Flash CIS 126. Debugging Flash provides several tools for testing ActionScript in your SWF files. –The Debugger, lets you find errors.
CA III PowerPoint Review © 2009 M and K Solutions, LLC -- All Rights Reserved.
1 TP #2: How does Prolog answer questions? n Miscellaneous info; n Last TP exercises solved; n How does Prolog answer questions? n Recursive Prolog programs;
Machine Learning Homework Gaining familiarity with Weka, ML tools and algorithms.
Part 1 Learning Objectives To understand that variables are a temporary named location to store data and that programmers work with different data types.
Subversion Subversion is a brand of version control software that is frequently used to store the code and documentation of a project so as to permit.
Day 1 on Google Cloud Platform
Adding Assignments and Learning Units to Your TSS Course
Introduction to Alice Alice is named in honor of
Assignment 8 Chess Game.
Cameras & Pictures Shaw STEM Lab 2014
Macrosystems EDDIE: Getting Started + Troubleshooting Tips
Python I/O.
Lesson 12 -Maintaining Documents & Macros Lesson 13 - Protecting & sharing documents Lesson 14 - Advanced Options #1.12, #1.13, & #1.14.
How to Run a Java Program
Macrosystems EDDIE: Getting Started + Troubleshooting Tips
Macrosystems EDDIE: Getting Started + Troubleshooting Tips
Lab 8: GUI testing Software Testing LTAT
Agenda for Unit 5: Control Structures
Macrosystems EDDIE: Getting Started + Troubleshooting Tips
Presentation transcript:

Programming Assignment: Planning Goal: gaining familiarity with theorem-proving technology

Goals for this homework 1.Learn how to use Prover9, a state-of-the-art theorem prover for FOL 2.Brief introduction to a different style of programming: logic programming 3.Practice converting a planning problem into FOL using situation calculus conventions

Step 1: Install Prover9/Mace4 Download and install Prover9/Mace4 on some machine that you will be able to use for a while. Lab machines will not have this, but if you don’t have access to another machine, let me know, and I will try to get this installed for you on a lab machine. Also, check out the documentation and examples. Manual: Examples: I especially recommend the “Schubert Steamroller” example, which is fairly easy to understand. Look for it under “Prover9 Miscellany”. Another one that is fairly easy to understand is the “Trivial set theory problem”.

The Prover9/Mace4 GUI

Step 2: Run Prover9/Mace4 on an Example Problem 1. Load the Assumptions and Goals from the Schubert Steamroller problem into Prover9/Mace4, either using the GUI or command line. I’ll explain things using the GUI, so if you want to use the command line, you’ll need to look it up in the manual. 2. Check to make sure the assumptions and goals are entered correctly by clicking “Well Formed?” in the GUI. 3. In the GUI, on the right panel, you should see two Start buttons, one for Prover9 and one for Mace4. Prover9 tries to prove that the goals must logically follow from the assumptions. Mace4 tries to find a counter-example. Press each of the Start buttons, and record what happens in a text file called “steamroller-output.txt”. Note that at least one of these will not succeed, so it may take up to the given time limit (60 seconds by default).

Step 3: Run Prover9/Mace4 on a Real Problem from Industry One common use of theorem provers in software engineering is to verify that some critical piece of code works correctly, or to search for a piece of code that satisfies the input/output properties being looked for. Your next task is to test Prover9 on this kind of industry task. We will take the problem from the TPTP (Thousands of Problems for Theorem Provers): TPTP format isn’t directly compatible with Prover9, so we’ll use this converted version of a TPTP problem: Copy and paste these axioms into the assumptions of Prover9, and run Prover9. Verify that it can prove this. (Note: the “goals” should be empty; they have already been included as “negative” assumptions.) Copy the output proof from Prover9 into a text file called “swc258-output.txt”.

Step 4: Formulate your own problem For this assignment, I will ask you to prove that there is a solution to two games/puzzles, or find a counter-example. The main task is to formulate the puzzles in situation calculus. We’ll start with a simple one (next slide), and then work up to a harder one.

Monkey and Bananas Puzzle: A monkey is in a room. Suspended from the ceiling is a bunch of bananas, beyond the monkey's reach. However, in the room there are also a crate and a stick. The ceiling is just the right height so that a monkey standing on a crate could knock the bananas down with the stick, if the crate is directly below the bananas. The monkey knows how to move left and right, climb up and down, pick up things, pull things left and right, and wave a stick in the air. How can the monkey knock the bananas down? Note: the problem is trivial for humans, but actually somewhat hard for monkeys and other animals. LeftMidRight Low Med High

Monkey and Bananas Your Job: 1.Formulate this domain in Situation Calculus. Store your set of axioms and goals in a file called “monkey-bananas.txt”. 2.Copy your axioms and goals into Prover9, and have it prove that a plan exists. (You may find that you need to correct your axioms to make this work.) Save the output of Prover9 to “monkey- bananas-output.txt”. 3.Extra credit (optional, 1 point): Examine the output of Prover9 to determine the exact sequence of steps that Prover9 comes up with for the plan. Save this plan to a file called “monkey- bananas-plan.txt”. LeftMidRight Low Med High

Step 5: Peg Solitaire: Triangle Version Peg Solitaire consists of a board with some pegs in it, where one of the pegs is missing. The only action is a Jump action, which moves one peg over top an adjacent peg, and lands the first peg in an empty slot. The peg that was jumped over is removed from the game. The goal of the game is to remove all pegs except one, and to have the final peg land in the same spot as the initial hole. Initial Board for Triangle Peg Solitaire A jump, with resulting board The goal state:

Your task for Step 5 1.Write a set of assumption and goal formulas that describe the Triangle Peg Solitaire Game. Store them in a text file called “peg-solitaire.txt”. Hint: To help with debugging your formulation of the problem, you may want to start with a smaller board, and not require that the final peg land in the original open spot. If you can get that to work, then work toward the full problem. 2.Load these into Prover9/Mace4, and determine whether Triangle Peg Solver can be solved. Save the results (outputs of Prover9 and Mace4) in a text file called “peg-solitaire-output.txt”. Note: Peg Solitaire is, in fact, solvable. However, the shortest solution takes 14 steps, with a fairly big branching factor. I don’t know for sure whether Prover9 can actually find a solution. It’s fine to determine that Prover9 can’t solve this, so long as you’re sure that you have formulated the problem correctly. Just record the output saying that Prover9 couldn’t find a solution. 3.Extra credit (optional, 1 point): inspect the output of Prover9 to determine the exact sequence of steps that gets from the initial state to the goal state. Save the steps you found in a file called “peg-solitaire-plan.txt”.

To turn in You should turn in a single zip archive called.zip. It should contain: steamroller-output.txt swc258-output.txt monkey-bananas.txt and monkey-bananas- output.txt peg-solitaire.txt and peg-solitaire-output.txt If you did the extra credit, monkey-bananas- plan.txt and/or peg-solitaire-plan.txt or otherwise transfer this zip file to your TA.