II: Searching, Planning and Scheduling Flashcards
What is a vital part of artificial intelligence? Why?
Searching, planning and scheduling which are popular algorithms and techniques used in computer science to find solutions to tasks and to plan activities in a given space. All three are necessary for solving problems in the different AI areas, since these are used for searching problems, scheduling tasks and planning actions.
Give an example for an area where searching, planning and scheduling can be used:
An agent-based system working on a problem in the environment, such as finding a goal from a given input, moving around either with a plan or without searching for a solution in a problem space where a schedule may affect the agent’s behavior.
What are search algorithms?
Search algorithms use strategies to search for solutions within a given data set in a problem domain. These algorithms share a basic structure but vary when it comes to search strategies. These algorithms traverse the paths (formed in either a tree or graph) that lead to the goal in a systematic order.
In what way does search algorithms traverse?
They traverse/search in data structures and visit paths in a systematic order. They are formed either as trees or graphs that are structured to ensure that the search will cover the entire space in an unorganized and non-redundant manner.
How are trees structured?
Trees are ordered structures with a finite number of nodes, where the initial state is the root note, and the goal state is the desired end nod or the path to the end node. Search algorithms explore the contents by moving in the tree: in other words, between levels in the tree moving between nodes.
What are graphs?
Graphs are data structures with nodes or so called vertices but do not have to be ordered not do they have end nodes as solutions. The initial state is used as a starting point ,or starting node, from which the search algorithm starts searching for a solution by moving between the neighboring nodes.
What happens with a directed graph compared to a bi-directed graph?
Directed graphs the movement goes between nodes without directions while in bi-directed graphs the directions go both ways between two neighboring nodes.
Are search algorithms efficient?
Search algorithms have different levels of efficiency. The performance of search algorithms depends on the content and complexity of the domain, such as the size of data sets with search space and depths. Performance can also be affected by the branching factor (the average number of child nods) and computability in time. The domain can be a simple and small search space, with a small number of solutions.
What are uninformed search algorithms?
Uninformed search, or blind search, is an umbrella term for algorithms that search without additional information about the contents. They can traverse a tree but do not have extra info about the states or the search space, which means that they have to force their way through the space using brute-force to find a solution.
What are brute-force search algorithms?
These are a type of algorithm of uninformed search algorithms; they are guaranteed to find a solution if done systematically, a solution exists and the space is finite. The search systematically enumerates all possible candidates for the solution and then checks whether each candidate satisfies the problem statement.
Are uninformed search algorithms and brute-force search algorithms general?
Yes! Since they do not require knowledge of the content when they enumerate nodes in the three and they are considered general-purpose search algorithms that can be applied to a variety of search problems.
What are some well-known uninformed search algorithms?
Dijkstra algorithm (debated?)
Breadth-first search algorithm
Depth-first search
Bidirectional search
Uniform-cost search algorithm
What are Dijkstra’s algorithms?
Dijkstra’s algorithm is a graph search algorithm used to find the shortest path from a starting node to all other nodes in a weighted graph. It maintains a priority queue to keep track of the tentative distances from the start node to each node. The algorithm iteratively selects the node with the smallest tentative distance, updates the distances of its neighboring nodes, and marks the current node as visited. This process continues until all nodes have been visited, resulting in the shortest path from the start node to all other nodes being determined based on the accumulated distances.
Are Dijkstra’s algorithms uninformed search algorithms?
Technically they can be seen as uninformed search algorithms since they have a universal graph property for positive weights BUT some argue that the graph property is heuristic and thus can be considered informed search algorithms.
What are some breadth-first search algorithms? What are the advantages and disadvantages of BFS?
Breadth-first search algorithms (BFS) traverse and search one level of the tree at a time, thus searching in breadth before moving to the next level in the tree. BFS can be used to perform a graph search but are mostly used for tree searches. It ALWAYS provides the shortest path to the solution (tree-wise, not weight-wise). It has a FIFO queue data structure which means that the nodes that have already been visited are stored.
Advantages: If the goal exists, it will find it using the shortest path, from the root to the goal. It cannot skip a level. Good for finding alternative paths through the search space and it can avoid infinite loop problems.
Disadvantages: Since each level of nodes is saved for creating the next one, this algorithm consumes a lot of memory space and takes a long time to solve with deeper-levels.