This project should be done in partnerships of two. You should first form a partnership with another member of the class. Then arrange to meet and/or communicate by email at certain times to coordinate progress on this project.
You will then choose a particular problem from a list of suggested problems. However, you may suggest an alternative problem and get clearance from the instructor to base your work around that problem.
There are two main purposes for doing this project. First is to get more practice with the Python language, and whatever IDE or editor you may be using with Python. The second purpose is to develop some feeling for the process of "operationalizing" a problem -- creating something that a user (a solver) can actually operate and do something with.
This project focuses more on the coding phase of problem formulation rather than pre-formulation or posing. Consequently, you should choose a fairly well-defined problem or define something yourself that is simple. Here is a list of suggestions.
First develop a formulation that can be operated using the Text_SOLUZION_Client.py program. You can debug your state representation and your operators here, in a relatively efficient manner.
Then create a version that works with the BRIFL framework, specifically, the Flask_SOLUZION_Client_Server.py program. Ideally, this will have an SVG visualization that makes the user experience somewhat nicer than the textual interface does.
Create a file P2-Description.pdf that answers the following questions. (1) What is the problem you have formulated? If this is not a well-known problem, explain what the problem is and any rules you have made up. (2) What is your state representation and why? (3) What operators do you provide? Did you face a choice when you designed your operators, and if so, what is another possibility that you considered? Why did you go with the choice you made? (4) Did you provide a visualization in your formulation? Briefly, how does that work? (5) Describe how you and your partner divided up the work of the project. (6) Describe any particular challenges you had with this project.
Submit your code files and description file via Canvas. If possible, please put all the files in a folder that has your UWNetID as the folder name, and then zip up the whole folder to obtain a zip file with a name of the form YourUWNetID.zip.
Files needed:
your problem formulation file, named appropriately. your visualization file, named appropriately. P2-Description.pdf.These should all be in a folder, and the folder named and zipped up as mentioned above.