首页 > 其他分享 >159.302 The 8-Puzzle: Search Algorithms

159.302 The 8-Puzzle: Search Algorithms

时间:2024-08-12 13:04:51浏览次数:19  
标签:Puzzle 159.302 results program Algorithms following using algorithms your

159.302 Artificial Intelligence

Assignment #1

The 8-Puzzle: Search Algorithms

Maximum number of members per group: 3 students

Deadline for submission: 9th of September

Instructions

  • Your task is to write a C++ program that will solve the 8-puzzle problem using a selection of

search algorithms, and their variants.

  • The successors of a state are to be generated in a FIXED order, namely move the blank tile: Up,

Right, Down, then Left. For simplicity, make node insertions into the Q, following the same

order.

  • An AnimateSolution() function has been provided that you can use to animate the sequence of

moves (i.e. path) calculated by the algorithms. A start-up program (compiles with g++ 13.2)

with a graphics library and routines for running multiple experiments and for generating

tabulated results are available for downloading from stream.

  • It is up to you to write any functions, classes or data structures that you may require. However,

for each of the algorithm, there is a specific STL data structure that is required. You can use

cout statements to trace the algorithms’ execution.

  • For each implementation of the algorithms below, include codes that will capture the following

information during the algorithm’s execution.

  1. Max. Q length – e.g. 26
  2. Path length - the number of moves to solve the puzzle, e.g. 30
  3. Number of state expansions – e.g. 157
  4. Actual running time in seconds (use the clock() function as shown in the start-up codes)
  • Write your algorithm implementations inside the skeleton functions provided for the required

algorithms. Do not change the names and input parameters of these skeleton functions as the

batch files would refer to them. Each algorithm implementation should return the sequence of

moves as a string. Moreover, make sure that your program runs with the supplied routines for

executing multiple experiments (i.e. batch_run), and for generating the tabulated experiment

results. Your assignments will be marked using them.

e.g.

string aStar_ExpandedList (string const initialState, string const goalState, int &pathLength,

int &numOfStateExpansions, int& maxQLength, float &actualRunningTime,

int &numOfDeletionsFromMiddleOfHeap, int &numOfLocalLoopsAvoided,

int &numOfAttemptedNodeReExpansions, heuristicFunction heuristic )

Note that the function uses pass by reference to copy the statistical results back to the calling

function

N.H.Reyes159.302 Artificial Intelligence

Assignment #1

N.H.Reyes

Part 1: Uniform Cost Search with the Strict Expanded List

  • Use the following search node pushing sequence (for a Heap data structure): Up, Right, Down,

Left

  • Implement the Q container using the heap data structure implementation - available in the C++

Standard Template Library (STL): use make_heap(), push_heap(), pop_heap(), etc.

Part 2: A* Search with the Strict Expanded List

  • Use the following search node pushing sequence (for a Heap data structure): Up, Right, Down,

Left

  • Implement the Q container using the heap data structure implementation - available in the C++

Standard Template Library (STL): use make_heap(), push_heap(), pop_heap(), etc.

  1. a) Using the Misplaced Tiles heuristic
  2. b) Using the Sum of Manhattan Distance heuristic

Part 3: Experiments and Documentation

Test your implementation of the different algorithms by performing experiments using the 5 given

(start, goal) state combinations below. Run your program until it either returns a solution, the Q

becomes empty (no solution), the computer runs out of memory, or until the program crashes. Run

the program in batch_run all mode to run all the experiments and collect the results easily.

Tabulate the experiment results in an Excel worksheet by converting the output of the batch file into

a worksheet. Ensure that the format of your tabulation matches the provided template (see

results_template.xlsx). Name your Excel file using the following format: results_ID.xlsx

Example: (e.g., results_20298765.xlsx).

In addition, assign the name "results" to the sheet containing the experiment results. For a group

submission, use one of the group member's ID numbers, but make sure to include the names and

IDs of all members in the checklist Excel file.

If there is no solution found for a given (start, goal states), simply leave that section blank in the

table, or write 0 in each of the required statistical measure (e.g. path length, no. of state expansions,

max q length, running time, etc.).

Specify under the “comments” section of the tabulation of results if any of the following was

observed for a given (start, goal state) combination:

  • the program ran out of memory
  • program crashed without any warning
  • the Q turned empty; thus, allowing the program to close properly

ID number159.302 Artificial Intelligence

Assignment #1

N.H.Reyes

(Start, Goal) State Combinations

Note: 0 - blank space

GOAL STATE: ((1 2 3)

(4 5 6)

(7 8 0))

Run the different algorithms on the following START STATES:

  1. 120483765
  2. 208135467
  3. 704851632
  4. 536407182
  5. 638541720

Hints:

You can step through the search by including a getch() function (made available via the graphics

engine provided in the start-up codes) inside your main loop to pause the program until the user

presses any key.

Example Sequence:

Sequence of states and operations.

You may choose to represent states in an array, of size 9. The moves must be represented using the

'u', 'd', 'l', 'r' characters.

In notation, the sequence s to get to the goal from the initial state could be represented as:

s = {d,r,u,u,l,d} You may find it helpful to cout something similar to help debug your program.

Criteria for Marking:

  • Make sure that your program compiles using gcc 13.2 (or later), or clang 15.0 (or later),

before handing it in.

  • Make sure that you submit a tabulation of all the experiment results, following the

results_template.xlsx format that comes with the start-up codes package. This will be used

to accurately analyse your implementation of the algorithms and mark your assignment. You

will lose 50% of your grade if you fail to perform the required experiments and submit this

file.

  • Submit the accomplished checklist as part of your documentation. Please download the

checklist.xlsx Excel file from our Stream site, fill-up the worksheet and rename it by

concatenating your ID number with the word ‘checklist’.

Name your Excel checklist file using the following format: checklist_ID.xlsx

Example: (e.g., checklist_20298765.xlsx).

ID number159.302 Artificial Intelligence

Assignment #1

  • You can work in a group (max. 3 members) for this assignment.
  • Copied work will be given zero marks.
  • Each algorithm implementation will be assessed based on its accuracy and performance on

the given set of (start/goal) state combinations.

----------------------------

Nothing follows.

N.H.Reyes

标签:Puzzle,159.302,results,program,Algorithms,following,using,algorithms,your
From: https://www.cnblogs.com/vx-codehelp/p/18354291

相关文章

  • COMPSCI 753 Algorithms for Massive Data
    COMPSCI753AlgorithmsforMassiveDataAssignment1/Semester2,2024GraphMiningGeneralinstructionsanddataThisassignmentaimsatexploringthePageRankalgorithmonbigreal-worldnetworkdata.Byworkingonthisassignment,youwilllearn......
  • ImportError:无法从“jwt.algorithms”导入名称“RSAAlgorithm”
    RSAAlgorithmPyJWT算法方法无法导入,但我确实安装了PyJWT错误:ImportError:cannotimportname'RSAAlgorithm'from'jwt.algorithms'我通过运行以下命令检查了该包是否可用:poetryshow|grep-ipyjwtpyjwt2.9.0J......
  • 题解:CF634A Island Puzzle
    CF634AIslandPuzzle题解分析由于我们仅能移动\(0\),所以其它数字的相对顺序较原来应该是不变的,所以我们从环中删除\(0\)再判断相对位置即可。还有需要注意的是本题是一个环,找到末尾需要用取模操作回到开头继续比较。示例代码#include<bits/stdc++.h>usingnamespacest......
  • 论文阅读:Scalable Algorithms for Densest Subgraph Discovery
    摘要密集子图发现(DSD)作为图数据挖掘的基础问题,旨在从图中找到密度最高的子图。虽然已有许多DSD算法,但它们在处理大规模图时往往不可扩展或效率低下。本文提出了在无向图和有向图上求解DSD问题的高效并行算法,通过优化迭代过程和减少迭代次数来计算核心数。同时引入了新的子......
  • 论文摘要:Efficient Algorithms for Densest Subgraph Discovery on Large Directed Gr
    背景在很多应用中,例如欺诈检测、社区挖掘和图压缩等,需要从有向图中找到密度最高的子图,这被称为有向最密子图问题(DirectedDensestSubgraph,DDS)。DDS问题在社交网络、Web图和知识图谱等领域有着广泛的应用。例如,在社交网络中,可以用来检测假粉丝,在Web图中,可以用来发现网络......
  • CF613E Puzzle Lover 题解
    Description给定一个\(2\timesn\)的矩阵,每个位置上有一个小写字母。有一个长度为\(k\)的小写字符串\(w\),询问矩阵中有多少条有向路径满足以下条件:路径上的字母连起来恰好为\(w\)。不多次经过同一个位置。只能向上下左右四个方向走。\(n,k\le2\times10^3\),答案......
  • Grid Puzzle
    可以看看官方题解,说一下我的赛时做法肯定操作二看起来都要优秀得多不难发现,相邻两行不可能放两个及以上操作一,否则的话直接用两个操作二替代利用数学归纳法考虑,对于第一行,我们要么用操作二,然后再去考虑之后的,要么用一个操作一(这要求第一行的黑色格子不超过\(2\),而此时显然用操......
  • F. Vitaly and Advanced Useless Algorithms
    原题链接题解,没有思路的时候先想想暴力1.观察观察再观察,对于每个计划而言,所完成的任务是唯一的,所以要完成任务\(c\),相当于在能完成\(c\)的计划集合里,选择若干个计划,使得其总耗时最小,且完成的超过1002.这种包含两种属性限制的集合选择,不难想到背包,即相同耗时,记录完成度高的,......
  • [ABC361D]Go Stone Puzzle
    题目大意给定一个字符串S,它是由B和W组成,之后在S后面添加两个空格,可以将相邻的两个字符和空格进行交换,交换的前提是只能相邻,同时两个字符必须都是B或者W,再给一个字符串T,也是由B和W组成,问最小经过几次交换,使得S变成T\(1\leq|S|\leq14\)题解:看到数据范围,一看就知道是个搜索,怎......
  • Fundamentals of Machine Learning for Predictive Data Analytics Algorithms, Worke
    主要内容:本书介绍了机器学习在预测数据分析中的基本原理、算法、实例和案例研究,涵盖了从数据到决策的整个过程。书中涉及机器学习项目生命周期的各个方面,包括数据准备、特征设计和模型部署。结构:本书分为五个部分,共计14章和若干附录:引言(IntroductiontoMachineLearn......