identification problem - a problem in which the agent must identify whether it is a goal state or not, with no regards of how it arrives at that goal In identification problems, the goal itself it important, not the path of reaching the goal All paths have the same depth, which is the number of variables in the problem constraint satisfaction problem (CSP) - an identification search problem in which each state must satisfy a number of constraints (limitations) in order to be a valid goal state In CSPs, states are partial assignments of variables (i.e. some variables have been assigned values while others have not) constraint graph - a graph whose nodes represent a CSP's variables and edges represent the constraints between the variables/nodes Components of a CSP variables - a set of $N$ variables ($X_1,...,X_N$) that can each take on a single value from the domain domain - a set ${x_1,...,x_d}$ representing all possible values that a ...
Standard search problems Solution to a standard search problem: a plan Use a search algorithm to find the plan and solve the search problem Search algorithms are performed on the search tree (of the problem) to find the solution to the search problem All search algorithms follow the same algorithm, but just use a different data structures for the fringe Types of standard searches ➤ UNINFORMED SEARCH uninformed search - a search that does not know information about the goal's location Types of uninformed searches Depth first search (DFS) - a search strategy that expands the deepest node first Implementation : uses a last-in-first-out (LIFO) stack as the fringe Time complexity : $O(b^m)$, for a finite tree where $m$ is the maximum depth and $b$ is the branching factor Space complexity : $O(bm)$ DFS expands only the nodes on a single path from the deepest level to the root Breadth first search (BFS) - a search strategy in ...
Layers of representation (high to low level) High-level language program high-level language - a programming language that uses English and mathematical symbols in its instructions (e.g. C) High-level programming languages are abstractions to lower-level programming languages compiler - turns high-level language problem into an assembly language program Assembly language program assembly language - a low-level programming language for a computer in which there is a strong correspondence between the language and the architecture's machine code instructions (e.g. MIPS, x86, 32b ARM) Assembly languages are abstractions of machine languages Assembly code is human-readable version of computer's native machine code There are different assembly languages for different CPUs following different ISAs (each assembly language is tied to a particular ISA) assembler - turns assembly language program into machine language program ...