zoukankan      html  css  js  c++  java
  • 3.2.1 Toy problems 8-puzzle problem

    3.2.1 Toy problems
    The first example we examine is the vacuum world first introduced in Chapter 2. (See
    Figure 2.2.) This can be formulated as a problem as follows:
    • States: The state is determined by both the agent location and the dirt locations. The
    agent is in one of two locations, each of which might or might not contain dirt. Thus,
    there are 2 × 2^2 = 8 possible world states. A larger environment with n locations has
    n · 2^n states.
    • Initial state: Any state can be designated as the initial state.
    • Actions: In this simple environment, each state has just three actions: Left, Right, and
    Suck. Larger environments might also include Up and Down.
    • Transition model: The actions have their expected effects, except that moving Left in
    the leftmost square, moving Right in the rightmost square, and Sucking in a clean square
    have no effect. The complete state space is shown in Figure 3.3.
    • Goal test: This checks whether all the squares are clean.
    • Path cost: Each step costs 1, so the path cost is the number of steps in the path.
    Compared with the real world, this toy problem has discrete locations, discrete dirt, reliable
    cleaning, and it never gets any dirtier. Chapter 4 relaxes some of these assumptions.
    8-PUZZLE The 8-puzzle, an instance of which is shown in Figure 3.4, consists of a 3×3 board with
    eight numbered tiles and a blank space. A tile adjacent to the blank space can slide into the
    space. The object is to reach a specified goal state, such as the one shown on the right of the
    figure. The standard formulation is as follows:

    • States: A state description specifies the location of each of the eight tiles and the blank
    in one of the nine squares.
    • Initial state: Any state can be designated as the initial state. Note that any given goal
    can be reached from exactly half of the possible initial states (Exercise 3.4).
    • Actions: The simplest formulation defines the actions as movements of the blank space
    Left, Right, Up, or Down. Different subsets of these are possible depending on where
    the blank is.
    • Transition model: Given a state and action, this returns the resulting state; for example,
    if we apply Left to the start state in Figure 3.4, the resulting state has the 5 and the blank
    switched.
    • Goal test: This checks whether the state matches the goal configuration shown in Figure
    3.4. (Other goal configurations are possible.)
    • Path cost: Each step costs 1, so the path cost is the number of steps in the path.
    What abstractions have we included here? The actions are abstracted to their beginning and
    final states, ignoring the intermediate locations where the block is sliding. We have abstracted
    away actions such as shaking the board when pieces get stuck and ruled out extracting the
    pieces with a knife and putting them back again. We are left with a description of the rules of
    the puzzle, avoiding all the details of physical manipulations.
    The 8-puzzle belongs to the family SLIDING-BLOCK of sliding-block puzzles, which are often used as
    PUZZLES
    test problems for new search algorithms in AI. This family is known to be NP-complete,
    so one does not expect to find methods significantly better in the worst case than the search
    algorithms described in this chapter and the next. The 8-puzzle has 9!/2=181, 440 reachable
    states and is easily solved. The 15-puzzle (on a 4×4 board) has around 1.3 trillion states, and
    random instances can be solved optimally in a few milliseconds by the best search algorithms.
    The 24-puzzle (on a 5 × 5 board) has around 1025 states, and random instances take several
    hours to solve optimally.

    COS 226 Programming Assignment

    https://github.com/aimacode/aima-csharp/tree/master/aima-csharp/environment/eightpuzzle

    https://github.com/aimacode/aima-java/blob/AIMA3e/aima-gui/src/main/java/aima/gui/demo/search/EightPuzzleDemo.java

    https://coursera.cs.princeton.edu/algs4/assignments/8puzzle/specification.php

    https://www.cnblogs.com/mingyueanyao/p/10250877.html

  • 相关阅读:
    如何监控Android应用的网络性能
    进程、线程和协程的区别
    微服务
    码农和规矩
    Java才是世界上最好的语言,Java在高频交易中替代C++
    微服务
    int.Parse()与int.TryParse()
    Json的序列化和反序列化
    .NET 垃圾回收与内存泄漏
    ASP.NET(C#)连接数据库和操作数据库
  • 原文地址:https://www.cnblogs.com/chucklu/p/14753648.html
Copyright © 2011-2022 走看看