The University of AdelaideArtificial IntelligenceAssignment 1Semester 1, 2019due 23:59, Thursday 11th April 2019IntroductionWith suitable abstractions planning a path for a mobile robot can be converted into asearch problem. Begin by abstracting the environment into a 2D grid of square “cells”.The robot state can be represented by a [x,y] pair, with [0,0] being the top-left cell of thegrid. Movements of the robot are possible at any time either UP, DOWN, LEFT RIGHT(denoted U, D, L, R) unless the neighbouring cell is occupied. The UP action moves to thecell immediately above (if possible) by changing [x,y] to [x,y-1]. Likewise RIGHT changesthe current state from [x,y] to [x+1,y], and so on. Given a start state, the goal of the robotis to reach a new (user specified) state [X*, Y*], where this must be an unoccupied cellin the grid. An action that would take the robot outside the grid or into an occupied cellresults in no change to the current state.Your task is to write a program that will read in an environment, a start state and a goalstate, and conduct a search to find a path between start and goal. You may implementany of the search algorithms discussed in lectures. Your output should be in the form of aspace-separated list of actions, such as U R R D D L L (more specific detail is given below).Test data will be provided on the course pages along with this Assignment description.Different data will be present in the submission system and your search program will beevaluated against these unseen data for its completeness and optimality.You must write the program yourself in either C, C++, Java or Python. You mayfreely use libarries or packages for data structures (e.g. for queues or trees or other structuresyou deem necessary), but if you use a library package or language function call for doing thesearch itself, you will be limited to 50% of the available marks. If there is evidence you havesimply copied code from the web, you will be awarded no marks and referred for plagiarism.The assessment script will attempt to work out what language yo have used by lookingat file extensions so do not mix .py, .c, .cc, .java files in the same repository. If you aresubmitting C/C++ you must also submit a makefile and the script will attempt to compileusing the command make. If you submit java the script will attempt compilation using javacrobotplanner.java, and for python there is no compilation.1The program must accept 5 arguments from the command-line: a file (which containsthe environment); and 4 integers specifying start state and goal state, eg:./robotplanner env.txt 0 2 4 1would read the environment specification from the file env.txt and should plan a path from[0 2] to goal state [4 1].The command above is run by the script if your program is C/C++. For java thecommand isjava robotplanner env.txt 0 2 4 1and for python it ispython robotplanner.py env.txt 0 2 4 1The search algorithm you use is deliberately not specified. You can use any searchalgorithm that you believe will produce a solution. But take note that undergraduates needto show their implementation produces a correct path. Postgraduates have in addition toproduce an optimal path. The output of your program must strictly comply with the specsbelow otherwise the automarking script will not be able to parse your answer, and willtherefore possibly not award all the marks available.Submission and AssessmentSubmit your program on the Computer Science Web Submission System. This means youmust create the assignment under your own SVN repository at 2019/s1/ai/Assignment1.Undergraduates will be assessed on whether they produce a valid solution. There are18 tests on 3 different grids (sized 5x5, 20x15 and 9x9). If a path is not possible and yourprogram correctly diagnoses this, the test is worth 4 marks. If the path is possible and youfind one valid path, you get 6 marks. Maximum available is 100. If your program producessomething that gives 0 marks please make sure you still submit since I will attempt to awardmarks for failed programs. the better your code is documented, the more likely it is you willawarded marks for submitting a failed attempt.Postgraduates must produce an optimal solution. There are 18 tests on 3 different grids(sized 5x5, 20x15 and 9x9), same as for the undergradutes. If a path is not possible and yourprogram correctly diagnoses this, the test is worth 4 marks. If the path is possible and youfind one valid path, you get 4 marks. If this path length (i.e. the number of moves needed)is equal to the optimum you receive an additonal 2 marks. Maximum available is 100. Ifyour program produces something that gives 0 marks please make sure you still submit since2I will attempt to award marks for failed programs. The better your code is documented, themore likely it is you will awarded marks for submitting a failed attempt.This assignment is due 11.59pm on Thursday 11th April, 2019. If your submissionis late, the maximum mark you can obtain will be reduced by 25% per day (or part thereof)past the due date or any extension you are granted.File formatThe environment will be stored as text file in the following format: the first line contains thewidth and height as two (space or tab separated) integers. Each subsequent line containsa set of space-or-tab-separated 0s and 1s, with 0 representing that a cell is free-space (andtherefore navigable) and 1 indicating it is occupied, and therefore cannot be entered orpassed through by the robot.For example5 30 0 1 0 01 0 1 0 00 0 0 0 1If we suppose that the start state is [0,0] (i.e. at the top left) and the goal state is [4,0](i.e. top right), then a valid solutions isR D D R R U U RNote that this solution is optimal but not unique.Your program must produce output in the format of a line with two numbers representingrespectively, the number of nodes explored, the path length to the goal, followed by a linewith the set of robot actions. For example:20 8R D D R R U U RFor the case that 20 nodes have been explored (including unexpanded nodes in the fringe),finding a path of length 8.If no path is possible then your program must output the following:3Where the first number is again the number of nodes searched, 0 is the pathlength and thecharacter X indicates no valid path.Prof. Ian Reid, 5 Apr 20194本团队核心人员组成主要包括BAT一线工程师,精通德英语!我们主要业务范围是代做编程大作业、课程设计等等。我们的方向领域:window编程 数值算法 AI人工智能 金融统计 计量分析 大数据 网络编程 WEB编程 通讯编程 游戏编程多媒体linux 外挂编程 程序API图像处理 嵌入式/单片机 数据库编程 控制台 进程与线程 网络安全 汇编语言 硬件编程 软件设计 工程标准规等。其中代写编程、代写程序、代写留学生程序作业语言或工具包括但不限于以下范围:C/C++/C#代写Java代写IT代写Python代写辅导编程作业Matlab代写Haskell代写Processing代写Linux环境搭建Rust代写Data Structure Assginment 数据结构代写MIPS代写Machine Learning 作业 代写Oracle/SQL/PostgreSQL/Pig 数据库代写/代做/辅导Web开发、网站开发、网站作业ASP.NET网站开发Finance Insurace Statistics统计、回归、迭代Prolog代写Computer Computational method代做因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:[email protected] 微信:codehelp