当前位置:天才代写 > 作业代写,留学生作业代写-北美、澳洲、英国等靠谱代写 > Programming languages1代写 Assignment代写 Python代写 program代写

Programming languages1代写 Assignment代写 Python代写 program代写

2021-02-25 17:06 星期四 所属: 作业代写,留学生作业代写-北美、澳洲、英国等靠谱代写 浏览:715

Programming languages1代写

Assignment 1: Search Methods

Programming languages1代写 This assignment is worth 10% of your final mark. It is an individual assignment; no group work.Late submissions are allowed

Deadline

Submission: 11:59pm, 5 April 2019 (Friday, week 6).Programming languages1代写

This assignment is worth 10% of your final mark. It is an individual assignment; no group work.

Programming languages1代写
Programming languages1代写

Late submissions policy Programming languages1代写

Late submissions are allowed for up to 3 days late. A penalty of 5% per day late will apply. Assignments more than 3 days late will not be accepted (i.e. will get 0 marks). The day cut-off time is 11:59pm.

Programming languages

Your implementation can be written in Python, Java, C, C++ or MATLAB. The assignment will be tested using the language versions as described in the “How your program will be run” section below, so it is important that your program can be run in the specified versions.Programming languages1代写

Submission Programming languages1代写

Your assignment must be completed individually using the submission tool PASTA (https://comp3308.it.usyd.edu.au/PASTA). In order to connect to the website, you’ll need to be connected to the university VPN. You can read this page to find out how to connect to the VPN. PASTA will allow you to make as many submissions as you wish, and each submission will provide you with feedback on each of the components of the assignment. You last submission before the assignment deadline will be marked, and the mark displayed on PASTA will be the final mark for your assignment.Programming languages1代写

1. The 3-digit puzzle

In this assignment, you will implement a number of search algorithms to solve the 3-digit puzzle.

Given are two 3-digit numbers called S(start) and G (goal) and also a set of 3-digit numbers called forbiden. To solve the puzzle, we want to get from S to G in the smallest number of moves. A move is a transformation of one number into another number by adding or subtracting 1 to one of its digits. For example, a move can take you from 123 to 124 by adding 1 to the last digit or from 953 to 853 by subtracting 1 from the first digit. Moves must satisfy the following constraints:

  1. You cannot add to the digit 9 or subtract from the digit0;
  2. Youcannot make a move that transforms the current number into one of the forbidden numbers;Programming languages1代写
  3. You cannot change the same digit twice in two successive moves.

Note that since the numbers have 3 digits, at the beginning there are at most 6 possible moves from S. After the first move, the branching factor is at most 4, due to the constraints on the moves and especially due to constraint 3.

For the purpose of this assignment numbers starting with 0, e.g. 018, are considered 3-digit numbers.

2. Tasks

  1. Write a program to find a solution of the puzzle using the following 6 search strategies: BFS, DFS, IDS, Greedy, A* and Hill-climbing. Use the Manhattan heuristic as a heuristic for A* and Greedy and also as the evaluation function inHill-climbing.Programming languages1代写

The Manhattan heuristic for a move between two numbers A and B is the sum of the absolute differences of the corresponding digits of these numbers, e.g. ℎ(123, 492) = |1 − 4| + |2 − 9| +

|3 − 2| = 11.

  1. Avoid When selecting a node from the fringe for expansion, if it hasn’t been expanded yet, expand it, otherwise discard it. Hint: It is not just the three digits that you need to consider when determining if you have expanded a node before. Two nodes are the same if a) they have the same 3 digits; and b) they have the same ‘child’ nodes.
  2. Generate the children in the followingorder:

a.1 is subtracted from the first digit

b.1 is added to the firstdigit

c.1 is subtracted from the seconddigit Programming languages1代写

d.1 is added to the seconddigit

e.1 is subtracted from the thirddigit

f.1 is added to the thirddigit

Example: the order of the children of node 678 coming from parent 668 is 578, 778, 677, 679. Note that there are no children for the second digit as it already has been changed in the previous move (constraint 3).

  1. Forthe heuristic search strategies: if there are nodes with the same priority for expansion, expand the last added node.
  2. Seta limit of 1000 expanded nodes maximum, and when it is reached, stop the search and print a message that the limit has been reached (see section “Input and Output” for the exact message required).

3. Input and Output

As your program will be automatically tested, it is important that you adhere to these strict rules for program input and output.

Input

Your program should be called ThreeDigits, and will be run from the command line with the following arguments:

  1. A single letter representing the algorithm to search with, out of B for BFS, D for DFS, I for IDS, G for Greedy, A for A*, H forHill-climbing.
  2. A filename of a file to open for the search details. This file will contain thefollowing:

For example, the file puzzle.txt might contain the following: Programming languages1代写

This file means that the search algorithm will start at state 345, and the goal is state 555. The search may not pass through any of 355, 445 or 554. Remember that the last line may not be present; i.e. there are no forbidden values.

The following examples show how the program would be run for each of the submission languages, assuming we want to run the A* search algorithm, and the input is in a file called sample.txt.

Programming languages1代写
Programming languages1代写

Note: MATLAB must be run this way (compiled first) to speed up MATLAB running submissions.

The arguments are passed to your ThreeDigits above will be executed as a function call like this:

ThreeDigits(‘A’, ‘sample.txt’)

Output Programming languages1代写

You program will output two lines only. The first line will contain the solution path found from the start node to the goal node (inclusive), in the form of states separated by commas. If no path can be found with the given parameters, then the first line should be “No solution found.”.

The second line should be the order of nodes expanded during the search process, in the form of states separated by commas. If no path was found, this should still print the list of expanded nodes. Remember that this list should never exceed 1000 states (point 5 in the Tasks section).Programming languages1代写

Examples

sample.txt:

320

110

Note that the outputs of BFS and IDS here are quite long, and so the second line has wrapped. These outputs are still only two lines.

Search Method Output
 

BFS

 

320,220,210,110

320,220,420,310,330,321,210,230,221,410,430,421,210,410,

311,230,430,331,221,421,311,331,110

 

DFS

 

320,220,210,110 Programming languages1代写

320,220,210,110

   

320,220,210,110

IDS 320,320,220,420,310,330,321,320,220,210,230,221,420,410,
  430,421,310,210,410,311,330,230,430,331,321,221,421,311,
  331,320,220,210,110
 

Greedy

 

320,310,210,211,111,110 Programming languages1代写

320,310,210,211,111,110

 

Hill-Climbing

 

No solution found. 320,310,210

 

A*

 

320,220,210,110

320,310,210,220,210,110

4. Submission Details Programming languages1代写

This assignment is to be submitted electronically via the PASTA submission system.

Your submission files should be zipped together in a single .zip file and include a main program called ThreeDigits. Valid extensions are .java, .py, .c, .cpp, .cc, and .m. Zip only the submission files, not the folder

– when your zip file is unzipped there should be only submission files, not a folder with submission files. Only .zip format is accepted; do not use any other format, e.g. .rar or .7z. If your program contains only a single file, then you can just submit the file without zipping it.

Upload your submission on PASTA under Assignment 1.

Programming languages1代写
Programming languages1代写

其他代写:java代写 function代写 web代写 编程代写 数学代写 algorithm代写 python代写 java代写 project代写 dataset代写 analysis代写 C++代写 代写CS 金融经济统计代写 essay代写 assembly代写 program代写 作业加急 matlab代写

合作平台:天才代写 幽灵代写 写手招聘 Essay代写

 

天才代写-代写联系方式