Applied Artificial Intelligence | My Assignment Tutor

Page 1IN-COURSE ASSESSMENT (ICA) SPECIFICATION Module Title:Applied Artificial IntelligenceModule Leader: Dr Ian WoodModule Code: CIS4040-NAssignment Title:AI Programming PortfolioDeadline Date:Friday 15th January 2021Deadline Time: 4:00pmSubmission Method:Online (Blackboard) ☑Middlesbrough Tower ◻ Online Submission Notes:• Please follow carefully the instructions given on the Assignment Specification• When Extenuating Circumstances (e.g. extension) has been granted, a fully completedand signed Extenuating Circumstances form must be submitted to the SchoolReception or emailed to scedt-assessments@tees.ac.uk.Central Assignments Office (Middlesbrough Tower M2.08) Notes:• All work (including DVDs etc) needs to be secured in a plastic envelope or a folder andclearly marked with the student name, number and module title.• An Assignment Front Sheet should be fully completed before the work is submitted.• When Extenuating Circumstances (e.g. extension) has been granted, a fully completedand signed Extenuating Circumstances form must be submitted to the SchoolReception or emailed to scedt-assessments@tees.ac.uk.FULL DETAILS OF THE ASSIGNMENT ARE ATTACHEDINCLUDING MARKING AND GRADING CRITERIAPage 2IntroductionThis ICA requires you to undertake the creation of three pieces of AI code using the Clojureprogramming language. It assesses all of the following learning outcomes and onsuccessful completion of this module, the student will be able to:Personal and Transferable Skills1. Communicate critical evaluations of complex programming concepts and solutions.2. Work collaboratively in small study teams to conduct research, develop softwaremodels and critically appraise the results obtained in the context of current research.3. Lead or participate in a small team to propose evidence-based decisions to a specifiedset of artificial intelligence problems.4. Select and apply appropriate problem solving methods, algorithms and languageprimitives appropriate for AI inference.Research, Knowledge and Cognitive Skills5. Design, implement and evaluate inference engines for non-trivial problems.6. Build solutions to programming problems and critically appraise the results.Professional Skills7. Autonomously adapt own approach in complex and unpredictable contexts.RequirementsStudents will develop a small portfolio of solutions to problems using concepts fromfunctional and symbolic programming. The problems will address all learning outcomes.Students will work in small teams using established mechanisms for peer assessmentwhich places responsibility on teams to critically appraise both the quality of team outputand the contribution made by individuals within the team.Student ResponsibilitiesYou should attend and participate in all timetabled sessions for this module. These willpredominantly take place in lab environments where you will undertake applicable andassociated activities. You are expected to undertake additional practical worksheets thatare disseminated periodically throughout the module.You should undertake guided reading that will be recommended periodically to inform yourpersonal study and research. It is essential you use this to inform your personal studiesand activities.You should submit all the necessary materials required for assessment of this module bythe due dates given above.Page 3There may be times when you need to seek advice or guidance on using the LibraryServices. This may include finding specific texts, literature searches, reading, note takingand/or academic report writing. Details can be found [here].There may also be times when you need to seek additional Student Support to help youwith other things surrounding your general studies. You can visit the Drop-In Centre, oncampus in the Europa Building or online [here].All of the above information is provided in order to support you with the necessarycoursework and for you to get the most out of your studies.DeliverablesRead these instructions carefully and follow them precisely. If you do not do so, you maylose (some or all) marks. You should attempt all three of the parts described below.Part 1: Presentation problemChoose one of the following problems and attempt all sub-parts for the chosen problem e.g.1.1(a) and 1.1(b) for problem 1.1Problem 1.1(a) Develop a function called bounds which takes a nested list of numbers as its onlyargument (i.e. a tree). Bounds should return the largest and smallest value in the tree.For example:(bounds ‘(1 (-2 17 (4)) -8 (-6 13)))==> (-8 17)(b) As problem 1.1(a) but the tree may contain mixed values (not only numbers).Problem 1.2(a) A function split takes a tree containing mixed data (symbols and numbers). Split returnsa list of two structures, one containing all the symbols, the other containing all thenumbers. NB: the ordering of data in the returned structure is not important.(split ‘(1 (-2 dog 17 (4) cat) -8 (rat -6 13) mango))==> {:nums (1 -2 17 4 -8 -6 13) :syms (dog cat rat mango)}— continued overleaf —Page 4(b) Similar to problem 1.2(a) but split now takes an argument which identifies how to splitthe data eg:(split ‘(1 (-2 “string” dog [this is a vector] 17 (4) cat) -8[and another vector] (rat -6 13) “blah” mango){:nums {:test number?}, :vects {:test vector?}:syms {:test symbol?}})==> {:nums {:test number?, :data (1 -2 17 4 -8 -6 13)}:syms {:test symbol?, :data (dog cat rat mango)}:vects {:test vector?,:data ([this is a vector][and another vector])}:other {:data (“string” “blah”)}}Problem 1.3(a) Write a function called nested-average, which takes a nested list of numbers as its onlyargument (i.e. a tree). The nested-average function should return the average of allnumbers in the tree. For example(nested-average ‘ (10 ((30 1) 20) (8 (5 (50 7)) 9) 40))==> 18(b) Similar to 2.4 but the new function (called “stats”) returns the smallest, largest, countand average profile of numbers in a tree. Values to be returned in a map.(c) As above but takes a sequence of comparators (like =, or user defined) todetermine which stats are returned.— continued overleaf —Page 5Problem 1.4(a) Strict binary trees have two branches from each non-terminal node: a left branch and aright. We can convenientlyrepresent binary trees usinglists or vectors, for example:can be represented as:‘[[[a b] c] [d [[e f] g]]]Write a function maximum-tree-sum which takes a binary tree containing positive andnegative numbers and returns the sum of numbers in the subtree which contains thelargest of these sums. For example, with the tree below: the maximum-tree-sum is 10,summed from the blue subtree.(b) Extend problem 1.4 so it returns (i) the maximum tree-sum (ii) the minimum tree-sum(iii) a sequence of all zero-sum subtrees.Page 6Problem 1.5(a) Strict binary trees have two branches from each non-terminal node: a left branch and aright branch. We can conveniently represent binary trees using lists or vectors, forexample:…can be represented as:‘[[[a b] c] [d [[e f] g]]](a) Write a function spin, which takes a binary tree as its argument and returns a treeformed by rotating each of the non-terminal nodes in the original tree. The tree abovewould look like this…Page 7(b) Spin and palindrome: As problem 1.5 but also reports on any trees it finds which arepalindromes.(c) Spin power-set: A spin-power-set (our term invented here) is a power-set of all treeswhere any of its subtrees may be spun/rotated or not. So:[c [b a]], [[b a] c], [c [a b]], [[a b] c]are all part of the same set but[a, [b c]]is not.Write a function to return the spin-power-set of a tree.Part 2: UVA problemThe UVA problem database is a collection of computing problems that can be coded usingClojure. The following links are to a selection of problems from that database, each linknavigates to a PDF file of the problem specification. All problems are tree or graph related.Teams should choose one of the problems to solve103 · 104 · 115 · 116 · 117 · 124 · 125 · 167 · 168 · 186 · 193301 · 302 · 310 · 314 · 315 · 336 · 341 · 347 · 352 · 383Part 3: OperatorsYou are required to build a small collection of state changing operators in the style used inlectures. Each operator will have preconditions, additions, deletions and a textualdescriptor. You may invent new types of tuple as required by the problem you are given.Problems are outlined below (see tutors for clarification if necessary). Your final collectionof operators should work with the mops-search mechanism. You will be expected todemonstrate your operators using sample start and goal states. You should show theoperation of mops-search with at least 3 start/goal combinations.When designing your operators think about “what should be possible” not just what you willwant them to do during a given test. Advanced solutions will also consider efficiencyaspects of their operators. The problems specify some operators which you should build,you may also build others if this helps your solution.An example operator(def move-op‘{:txt [?agent moves from ?place1 to ?place2]:pre ([isa ?agent agent][at ?agent ?place1][next-to ?place1 ?place2]):del ([at ?agent ?place1]):add ([at ?agent ?place2])})Page 8Choose one of the problems from the following list:Problem 3.1: Sliding doorsThis scenario is concerned with doors. Doors can be in different states (open or closed,locked or unlocked). Doors connect rooms and are un/locked with specific keys.Specify and build the following operators…• open (an unlocked door)• close (a door)• lock (a door with a key)• unlock (with a key)• move (from one room to another)Problem 3.2: LiftingThis scenario is based around using a lift. Agents can “call” a lift by pressing the buttonoutside the lift door in a corridor, on calling a lift there will be a short delay then the lift willarrive and the doors will open. Once entering the lift a floor can be selected (using a buttoninside the lift). After selecting a floor, the lift doors will close and it will start to move. After ashort delay it will reach the chosen floor and the doors will open. You may assume that youroperators control all agents using the lift.Specify and build the following operators…• call-lift (from the corridor, assume that there is only one button per floor, not• separate buttons to request a lift going up and another going down)• select-floor (by pressing a button inside the lift)• enter-lift (from the corridor)• exit-lift (to the corridor)• wait (for a lift after it is called)• wait (for a lift to reach the selected floor)Problem 3.3: ClimbingSome objects can be held by agents (grabbable objects), some can be platforms, and somecan be climbed, some platforms can be climbed, and some climbable and/or platformobjects are also ‘grabbable’.A platform object can have other objects placed on top of it. Agents can pick/dropgrabbable objects off/on a platform if they are standing on the platform.Specify and build the following operators…Page 9• climb-on (a climbable object at roughly the same position as the agent)• climb-off (a climbable object)• pick-off (an object from a platform)• drop-on (an object on a platform)NB: you must also be able to test your work using pick-up, drop and move (either as theywere defined in lecture materials or with some modification).Problem 3.4: Cranial loadingThere is a small container terminal in Gliwice, Poland where containers areloaded/unloaded to/from boats. In 2010/11 researchers were investigating using STRIPSoperators to automate this process. That much is true, the rest of this is fiction…Boats arrive at one side of the terminal (one at a time), trains arrive at the other side. Boatsand trains both have a line of places/platforms/locations where containers can be stacked.The line of platforms on a boat/train are described with tuples like…[platforms train-1 (t1 t2 t3 t4 t5 t6)]A crane is positioned between the boat arrival side and the train arrival side. The crane canrotate but cannot move forward/backward along the terminal. Boats and trains can move,when train-1 is positioned to load/unload to/from platform p3, this will be represented by thetuple…[position train-1 t3]Boats and trains can move forwards and backwards (your operators should handle this butthey do not need to deal with boats/trains moving off the terminal – this is managed byother operators).Containers are stacked platform positions (for the sake of this exercise you can assumethat there is no limit to the height of stacks). When the crane lifts a container it removes itfrom the top of a stack, when it places a container, it puts it on the top of a stack. Stacks arerepresented by the following type of tuple…[stack t3 (a b c)]…where a, b and c are containers (a is on the top of the stack).Specify and build the following operators…• lift-container picks up a container from the top of the current stack• place-container puts a container onto the current stack• rotate-crane switch the crane from the boat side to the train side and vice-versa • shunt-fwdmove a boat/train forward one platform/position (do nothing if thisalready at the last position in the sequence) Page 10 • shunt-backmove a boat/train backward one platform/position (do nothing if thisalready at the last position in the sequence) Problem 3.4: Robot carsIn this example robot cars move stock materials around a small warehouse.The warehouse is split into zones with one car in each zone. Cars cannot move betweenzones but it is possible to move stock from one zone to another because zones connect toeach other by Exchanges – shared areas where one car can leave stock for another (notethere is only room for one piece of stock in an exchange).Each zone is laid out in a grid formation where Corridors run north-south or east-west andconnect to each other at Junctions. The corridors are full of Bays – the bays are wherestock is stored. So far so good but there is a small complication… the stock is mostly (youcan assume always) longer than the width of the corridors so they can only be carried alongthe corridors if they correctly aligned this means that cars sometimes need to rotate stock atcorridor junctions.Specify and build operators to achieve the following… • collect-stockfrom the car’s current bay/exchange (cars must already have travelledto the correct bay), note that cars can only hold one stock item at a time (you may split this into 2 operators if you wish) • deposit-stockput the stock at the bay/exchange where the car is (you may splitinto 2 operators if you wish) • move-to-bay move a car to a bay in its current corridor• move-to-junction move a car to a junction/exchange from its current corridor (you maycombine this with other move operators if you wish)• rotate-car rotate a car (and its stock) this can only happen at a junctionYou will also need to specify world knowledge (static/unchanging tuples) to capture detailsabout which junctions connect to which corridors, where the bays are and the location ofexchanges.NB: ensure your definitions describe a world large enough to test but do not make it largerthan necessary. If necessary you can write small helper functions to generate tuples fromother data types.Peer marks• Groups will distribute 13 peer assessment points for each ICA part, individual marks willbe calculated from the group mark and peer assessment points as explained under therelevant section at DigMusic• An individual’s overall mark will be a combination of their marks from each of the ICAparts (marks from all papers will have the same weighting)Page 11Marking and submission• Each part of the ICA will be marked during normal class time by a presentation made bythe team to one or more members of staff.• Group marks and feedback for the code will be given after each presentation.• One member of each team should upload a ZIP file of the team’s work to Blackboard onthe same day as the presentation. The ZIP file should contain:• source code• any diagrams and/or supplementary text• peer marks for all team members (out of 13)Marking/grading criteriaThis ICA counts for 100% of the overall module grade. The following learning outcomes willbe assessed:Personal and Transferable Skills1. Communicate critical evaluations of complex programming concepts and solutions.2. Work collaboratively in small study teams to conduct research, develop softwaremodels and critically appraise the results obtained in the context of current research.3. Lead or participate in a small team to propose evidence-based decisions to a specifiedset of artificial intelligence problems.4. Select and apply appropriate problem solving methods, algorithms and languageprimitives appropriate for AI inference.Research, Knowledge and Cognitive Skills5. Design, implement and evaluate inference engines for non-trivial problems.6. Build solutions to programming problems and critically appraise the results.Professional Skills7. Autonomously adapt own approach in complex and unpredictable contexts.Portfolios of code will be assessed according to:• The solutions to functional programming problems:◦ Correctness of the solutions proposed◦ Critique of the different possible solutions◦ Appropriate and evidenced use of appropriate data structuresPage 12• The construction of inference mechanisms:◦ The design and implementation of inference engines◦ Algorithm development◦ The evaluation and critique of possible solutions◦ An appraisal of the use of symbolic, functional and/or declarative programmingIt should be noted that any marks offered are provisional until they have been confirmed bythe relevant Course Assessment Board and in accordance with University AssessmentRegulations.Subject Specific Marking Criteria DIST ✭:80-100%Excellent and outstanding in all aspectsCommunication of critical evaluations of complex programming concepts andsolutions.Collaborative work in small study teams to conduct research, developingsoftware models and critically appraising the results obtained in the context ofcurrent research.Leading or participation in a small team to propose evidence based decisionsto a specified set of artificial intelligence problems.Selection and application of appropriate problem solving methods, algorithmsand language primitives appropriate for AI inference.Design, implementation and evaluation of inference engines for non-trivialproblems.Solutions built for programming problems and critical appraisal of the results.Autonomous adaptation of own approach in complex and unpredictablecontexts.DIST:70-79%Very good, substantially correct and appropriate (based on taughtmaterial and module requirements)Communication of critical evaluations of complex programming concepts andsolutions.Collaborative work in small study teams to conduct research, developingsoftware models and critically appraising the results obtained in the context ofcurrent research.Leading or participation in a small team to propose evidence based decisionsto a specified set of artificial intelligence problems.Selection and application of appropriate problem solving methods, algorithmsand language primitives appropriate for AI inference.Design, implementation and evaluation of inference engines for non-trivialproblems.Solutions built for programming problems and critical appraisal of the results.Autonomous adaptation of own approach in complex and unpredictablecontexts. Page 13 MERIT:60-69%Good, generally correct and appropriate (based on taught material andmodule requirements)Communication of critical evaluations of complex programming concepts andsolutions.Collaborative work in small study teams to conduct research, developingsoftware models and critically appraising the results obtained in the context ofcurrent research.Leading or participation in a small team to propose evidence based decisionsto a specified set of artificial intelligence problems.Selection and application of appropriate problem solving methods, algorithmsand language primitives appropriate for AI inference.Design, implementation and evaluation of inference engines for non-trivialproblems.Solutions built for programming problems and critical appraisal of the results.Autonomous adaptation of own approach in complex and unpredictablecontexts.PASS:50-59%Satisfactory but with errors/omissions/issues/basic in scopeCommunication of critical evaluations of complex programming concepts andsolutions.Collaborative work in small study teams to conduct research, developingsoftware models and critically appraising the results obtained in the context ofcurrent research.Leading or participation in a small team to propose evidence based decisionsto a specified set of artificial intelligence problems.Selection and application of appropriate problem solving methods, algorithmsand language primitives appropriate for AI inference.Design, implementation and evaluation of inference engines for non-trivialproblems.Solutions built for programming problems and critical appraisal of the results.Autonomous adaptation of own approach in complex and unpredictablecontexts.FAIL40-49%Poor, unsatisfactoryCommunication of critical evaluations of complex programming concepts andsolutions.Collaborative work in small study teams to conduct research, developingsoftware models and critically appraising the results obtained in the context ofcurrent research.Leading or participation in a small team to propose evidence based decisionsto a specified set of artificial intelligence problems.Selection and application of appropriate problem solving methods, algorithmsand language primitives appropriate for AI inference.Design, implementation and evaluation of inference engines for non-trivialproblems.Solutions built for programming problems and critical appraisal of the results.Autonomous adaptation of own approach in complex and unpredictablecontexts. Page 14 POOR FAIL:0-39%Very poor, inadequateCommunication of critical evaluations of complex programming concepts andsolutions.Collaborative work in small study teams to conduct research, developingsoftware models and critically appraising the results obtained in the context ofcurrent research.Leading or participation in a small team to propose evidence based decisionsto a specified set of artificial intelligence problems.Selection and application of appropriate problem solving methods, algorithmsand language primitives appropriate for AI inference.Design, implementation and evaluation of inference engines for non-trivialproblems.Solutions built for programming problems and critical appraisal of the results.Autonomous adaptation of own approach in complex and unpredictablecontexts.

QUALITY: 100% ORIGINAL PAPER – NO PLAGIARISM – CUSTOM PAPER

Leave a Reply

Your email address will not be published. Required fields are marked *