Programming Homework Help

Programming Homework Help. Santorini Final Project – Artificial Intelligence Project

Answer all questions

General Instructions:

  • You may not use code or solutions from any source (i.e. originating from colleagues, internet etc.). You may consult various sources to obtain the state of the art or interesting ideas.
  • The report that you will compose must be self-contained
  • Generally speaking it is a good idea to reach some conclusions as a result of your analysis

Q1: Game Playing and Search (LO2) – 70%

Santorini (default game but without deity powers and no limit on building pieces) is a two-player based game, played on a board of 5×5 squares and it is round based. Each player has two workers. At each round the player picks one of his workers to move to an adjacent spot (horizontally or vertically) and then must build to an adjacent spot from the one that he has moved to; building increases the height of a building by one level (initially all squares start with no buildings, i.e. height is zero); the maximum height of a building is 4 levels high. If a player cannot move one of his workers and then build then he loses the game.

Restrictions on movement: you may move down or stay at the same level, but you may not climb up by more than one level high, for example if the square you start has a level 1 high building, then you can move to an adjacent square with no building (height=0), with a level 1 or 2 height building, but not higher.

2nd restriction on movement: it is impossible to move to a height 4 building, or to a square that already has another worker.

Restriction on building: you may not build on a square that has a worker and you cannot increase a building past height 4.

A player wins immediately after moving to a building of height 3, or if the opponent loses because none of his workers can move or build.

You can find the rules of this game online, e.g. http://roxley.com/wp-content/uploads/2016/08/Santorini-Rulebook-Web-2016.08.14.pdf

Note that you will not use deity powers, and you will not have a limit on how many building pieces you have (so in theory you could build the whole board!)

Instructions for the Design and Implementation

You will be given code that models/plays the game. You must write the AI for the game.

  • First, you should implement a greedy algorithm for playing the next move of the game. Implement this in the method that returns the next move of the computer. The hardest part of this process is to implement also an appropriate heuristic function for evaluating board positions. (15%)
  • Then extend your previous design by implementing the min max algorithm. You should use a different class in order to preserve both the min-man and greedy methods. (15%)
  • Test your two AIs (greedy vs minmax) against each other and report on what you observe; please remember to run several runs in your test as the game includes randomness. For full points not only report on what the scores were, but also give intuition regarding what you observe and which AI outperforms the other. (10%)
  • You can also try implement further improvements like using alpha-beta cutoffs (10%). In fact in part c you may include a-b minmax in you comparison.
  • Finally, the last 20% of your grade will depend on your code’s performance in the class tournament. You should aim to create a good heuristic (in part a) and implement the most efficient algorithm (e.g. a-b minmax – part d) in order to outperform your opponents.

For full points in each part a-e you need to describe in your report what you implemented and a short evaluation of your efforts (part c will include this for parts a and b potentially, or you can have a different section).

NOTE: IT IS REQUIRED TO PROVIDE A JAR FILE OF YOUR CODE IN ORDER TO PARTICIPATE IN THE CLASS TOURNAMENT – THIS SHOULD HAVE SELECTED THE BEST ALGORITHM THAT YOU WANT TO PARTICIPATE IN THE TOURNAMENT WITH, EVEN THOUGH ALL CLASSES SHOULD BE INCLUDED IN YOUR CODE.

Q2: Prediction Task (LO3) – 30%

You have been assigned to build a prediction model of 6 dermatological diseases based on 34 symptoms. The point of this model is to predict the dermatological disease of a person, once the model is fed with all the symptoms. To build the model, which is also the domain theory, you will consider some historical data that you can obtain from the UCI repository[1]. For this task you will use machine learning techniques, and in particular decision trees (and another one of your choice such as neural networks).

The Weka machine learning library can be used. This will result in two models which you will have to compare and evaluate in terms of prediction accuracy, complexity as well as other parameters that you may consider. The experiments, as well as your conclusions will be described in a brief report of about 1000-1500 words.

Your report will need to contain at the very least, a description of the data you have collected, any pre-processing you have performed, the models you considered, relevant parameters, and evaluation results. The Weka library can be used in the aforementioned analysis.


[1] UCI repository, Dermatology data set: http://archive.ics.uci.edu/ml/datasets/Dermatology

Programming Homework Help

 
"Our Prices Start at $11.99. As Our First Client, Use Coupon Code GET15 to claim 15% Discount This Month!!"