Move Generators and Other Basic Functions for the WRKBK Problem

Slides:



Advertisements
Similar presentations
Heuristic Search techniques
Advertisements

Shallow Blue Project 2 Due date: April 5 th. Introduction Second in series of three projects This project focuses on getting AI opponent Subsequent project.
INTRODUCTION Time management
Group practice in problem design and problem solving
HOW TO SOLVE IT? Algorithms. An Algorithm An algorithm is any well-defined (computational) procedure that takes some value, or set of values, as input.
Dr Andy Brooks1 FOR0383 Software Quality Assurance Lecture 1 Introduction Forkröfur/prerequisite: FOR0283 Programming II Website:
System Development Life Cycle. The Cycle When creating software, hardware, or any kind of product you will go through several stages, we define these.
Sorting: Implementation Fundamental Data Structures and Algorithms Klaus Sutner February 24, 2004.
How to Write Lesson Plan Using the Cooperative Group Instructional Model.
How to play chess? By Mervyn George. The Rules of the Game White always move first White always move first You should always play touch a piece move a.
Ch. Eick: Introduction to Search Classification of Search Problems Search Uninformed Search Heuristic Search State Space SearchConstraint Satisfaction.
1 Ch. 2: Getting Started. 2 About this lecture Study a few simple algorithms for sorting – Insertion Sort – Selection Sort (Exercise) – Merge Sort Show.
FACILITIES PLANNING ISE310L SESSION 1 INTRODUCTION, January 11, 2016 Geza P. Bottlik Page 1 OUTLINE Introduce instructor Homework Take roll Grades Go over.
Christoph F. Eick: Thoughts on the Rook Project Challenges of Playing Bridge Well 
Steps and Vocabulary Martha Rice. You can use the same problem solving methods to solve just about any problem, from word problems to logic problems to.
Final project Simone Campanoni
{ COMI Thursday night 5:30 – 10:30 Room 6054.
CS & CS ST: Probabilistic Data Management Fall 2016 Xiang Lian Kent State University Kent, OH
Advanced Higher Computing Science
CS 664 Sample Presentation
Course Overview CS 4501 / 6501 Software Testing
Component 1.6.
Algorithms and Problem Solving
CSc 1302 Principles of Computer Science II
Done Done Course Overview What is AI? What are the Major Challenges?
Equality Project Part A Observations
CMSC201 Computer Science I for Majors Lecture 11 – Program Design
Year 7 E-Me Web design.
#GOALS BREAKING DOWN PROJECTS & FINALS
Chapter 10: Process Implementation with Executable Models
COMI Friday 9:00 – 1:50 Room 2108.
Business and Management Research
Completing the tasks for A452 with….
Teaching Plan Problem Solving
Office of Education Improvement and Innovation
Game Project IMGD 4000 Due Dates: Form Teams Treatment Website
Example: Applying EC to the TSP Problem
Algorithm An algorithm is a finite set of steps required to solve a problem. An algorithm must have following properties: Input: An algorithm must have.
Randomized Hill Climbing
Video 6: Practice Papers for
Randomized Hill Climbing
Learning to Program in Python
10th Grade Research: Finding the Questions
Welcome to CS220/MATH 320 – Applied Discrete Mathematics Fall 2018
Consumer Behaviour PROJECT WORK Laura Grazzini
PHYS 202 Intro Physics II Catalog description: A continuation of PHYS 201 covering the topics of electricity and magnetism, light, and modern physics.
GCSE Revision In response to a large number of Y11 students asking for advice on how to revise….. Introduction & revision planning Revision techniques.
Business and Management Research
Dr. Rob Hasker SE 3800 Note 9 Reviews.
Algorithms and Problem Solving
Tonga Institute of Higher Education IT 141: Information Systems
Design Brief.
CMSC201 Computer Science I for Majors Final Exam Information
Ch. 2: Getting Started.
How students learn Build on previously learned materials
Informatics 122 Software Design II
Effective Project Management: Traditional, Agile, Extreme
Presentation and project
Basic Concepts of Algorithm
CS 6640 Sample Presentation
Strategic Thinking There are two concepts that all chess players must understand from the start; strategy and tactics. Beginners often confuse the two.
Bellwork 8 minutes 7 minutes 9 minutes 10 minutes 12 minutes
Tonga Institute of Higher Education IT 141: Information Systems
Software Development Techniques
Thoughts Concerning the King+Rook_vs_Rook Problem
Support with the spelling and grammar test
CMSC201 Computer Science I for Majors Lecture 12 – Program Design
Teaching Plan Problem Solving
Language and Communication
Role of the Internal Verifier
Presentation transcript:

Move Generators and Other Basic Functions for the WRKBK Problem Updated on Sept. 17, 2016! Move Generators and Other Basic Functions for the WRKBK Problem Develop a function WMOVE: State2Move ; e.g WMOVE(s34) returns the moves white can make in state s23, e.g. ((K, 3, 4), (R, 8, 5)). Remark: Do not creates moves that lead to the death of the white king or the loss of the white rook! Develop a function BMOVE: StateState{c, s, m} that takes the input state and returns the state obtained by moving the black king; the function additionally returns the status of the game: c indicates that the game continues, s indicates that we have a stale mate, m indicates that we have a mate; in the case that the input state s is a mate or stalemate position, BMOVE(s) returns (s,’s’) or (s,’m’). Using the first 2 functions, develop a function APPLYM: State  Move  State {c, s, m} that applies the (white) input move to the input state obtaining a new state s’ and moves the black king in state s’, and returns the state obtained; that is it applies two moves and returns the obtained state and the status of the game: either ‘c’, ‘s’ or ‘m’. Write a function that reads training and test files. Write a main program that executes your software system by running your search function for the problems in the input files, and which writes solutions and meta data for each solution to an output file. Write a function to visualize WRKBK states and solutions to the WRKBK problems Write a function to visualize solutions to WRKBK problems Represent states efficiently as you will create a lot of them e.g. just use 6 numbers that represent the positions of the 3 pieces or even only a single number e.g. 446668!

Updated on Sept. 19, 2016! Other Advice Get the software that reads the file and solves the problem in the file and produces an output file for all test cases running asap!! Make the number of state explored SEXPL a constant, and set it to a small value; e.g. 50 first and not 10000; as you might recall in case that you generated exceeds SEXP, you program should terminate unsuccessfully. To ensure fairness, students who do not properly update the SEXP in their software system will be significantly punished. Using other Software in the Project: Use of chess playing programs is strictly prohibited, but use of general software for search or modification of pseudo code of such software is allowed. However if you use search or other software in your software system, you have to mention/reference this software in your final report; failing to do so is an academic honesty violation. This should be done for every external software you use; e.g. if you use chess board display software is fine, but you have to acknowledge that you used this software and did not write it yourself. Project1 is individual project; using code written by other students is strictly prohibited, and represents a serious academic honesty violation.

Thoughts on Search Strategies for the WRKBK Problem The task is to solve the problem at hand Hill-Climbing, Randomized Hill Climbing, Backtracking, Best-first Search,… all seem to be suitable search strategies for the problem Find “good” evaluation functions” (e.g. f(pos)=king_close_w_king(pos)*a + king_close_to_rook(pos)*b + c*1/Freedom_black_king(pos)) for one of the available search strategies Rapid prototyping is strongly recommended; also don’t make things too complicated at the beginning Try to learn from sample runs Idea: break the problem into sub-problems and solve each sub-problem separately. Idea: Reduce the search space by disallowing certain moves Idea: Use look-ahead when you use backtracking or hill climbing You are allowed to take advantage of the face that “you know in advance how the black king moves”. It is okay if you implement a game-style system but you should be aware of the fact that you are trying to solve a more complicated problem which makes it much harder to get your system running. “Complex” search strategies are frequently hard to debug/improve.

Thoughts on Search Strategies for the WRKBK Problem (cont) Instead of looking to all possible positions sample some of those to reduce the complexity of the search Checking for duplicate states might or might not help (this answer is dependent on the employed search strategy) Disjunctive goals in search create problems Taking advantage of symmetry is complicated, but might help! There is a training benching that is already posted, consisting of 13 problems and a test benchmark consisting of 7 problems will be used to evaluate how your software systems deals with “novel” problems. Test cases will be sorted by difficulty; if you program cannot solve all the test problems this is not the end of the world; however, if it is not able to solve the “simple” cases you will not get a good grade for project. The primary goal is to checkmate the black king; however, programs that find shorter solutions will get higher, but not necessarily a lot higher scores. The project will be graded evaluating your report, the quality of the designed program, and the programs performance for the training and test set. Program performance for training and testing benchmark will count at least 55% towards the overall grade.

IJCAI 2016 Homepage http://ijcai-16.org/index.php/welcome/view/home Important: Take a look at it prior to the September 22 lecture! Word cloud of papers that have been accepted for IJCAI 2016 Remark: 3 Students will describe in 2 minutes the 1 or 2 things they found interesting at the website or they will tell you why this website is completely boring. Dr, Eick conducted a lottery and these three students are: Chan,Kong, Kaminski,Nicholas,Joseph and Walvekar,Deeptiramachandra (can bring a single slide and we will upload it before the lecture on 9/22).

Automated Cooperative Driving http://www.gcdc.net/en/ (Major Event in 2016) http://adas.cvc.uab.es/site/elektra/enigma-portfolio/acdc-automated-cooperative-driving-in-the-city/ (Sample Project)

Internet of Things (IoT) Samsung IoT in the Future Video: http://news.samsung.com/us/2016/06/13/internet-of-things-transforming-the-future/ IoT Conference Program: http://www.remotemagazine.com/IoTWest/conference-sessions/ Remark: 3 students already give a presentation on IoT on September 27, 2016!

Angry Bird Game AI Competitions Main Website: https://www.angrybirds.com Competition Organizers: https://aibirds.org/ Angry Bird Game Sample Game Video: http://www.bing.com/videos/search?q=angry+birds+game+videos+youtube&view=detail&mid=0B8CC0B820C3E2598E450B8CC0B820C3E2598E45&FORM=VIRE (44 million views)

IJCAI 2016 Best Paper Award Presentation October 13, 3:30p: Presentation and Review of the IJCAI 2016 Distinguished Award Paper "Hierarchical Finite State Controllers for Generalized Planning" by Javier Segovia, Sergio Jimenez and Anders Jonsson (Paper Download; 3 students, 10-12 minutes, followed by a general discussion of the paper!) Remarks: The whole class will read this paper; its contents might be even relevant for the Midterm exam scheduled for October 25! Understanding papers at top conferences in tough: if you understand 50% of the paper, I would be vey happy; however, three of you might understand about 70% of the paper. Presentation Plan: Present the content of the paper (80%) and give a brief evaluation of the paper at the end of your presentation (20%)! Because of what I said before, my expectations for the Oct. 13 presentation are quite low.