PPTOK課件站

展開

首頁 > 行業PPT
人工智能課件第二次課ppt
  • 立即下載
  • PPT預覽

    • 人工智能課件第二次課ppt

    PPT摘要

    這是人工智能課件第二次課ppt,包括了GameAI的介紹,追擊與逃跑,運動模式,基本路徑探索等內容,歡迎點擊下載。

    第二章 人工智能與游戲 Game AI
    GameAI的介紹 
    追擊與逃跑(chase and evade)
      運動模式(pattern movement)
      基本路徑探索(basic pathfinding)
    人工智能與游戲的定義 Game AI
    Anything that gives the illusion of intelligence to an appropriate level, thus making the game more immersive, challenging, and, most importantly, fun, can be considered game AI.
    具有某種程度的智能幻覺,使游戲更吸引、更具有挑戰性、必須有趣的一些事物。
    Introduction to Game AI
    Some developers consider tasks such as pathfinding as part of game AI.
        路徑搜索
    Some developers consider collision detection to be part of game AI.
        沖突檢測
    Game AI 游戲與AI的特點
    Two flavors:
       deterministic 確定性的
       nondeterministic 不確定性的
    確定性的 deterministic
    有確定的說明和可預測的行為和性能
       Deterministic behavior or performance is specified and predictable.
    如攻擊算法 Chasing algorithm
    能夠編寫代碼使角色沿著X,Y軸朝向目標移動,直到角色的位置與目標位置重疊。
       You can code a nonplayer character to move toward some target point by advancing along the x and y coordinate axes until the character’s x and y coordinates coincide with the target location.
    不確定性的 Nondeterministic
    某種程度的不確定性行為和某些不可預測的。
         Nondeterministic behavior has a degree of uncertainty and is somewhat unpredictable.
    一個非玩家要學會適應玩家的策略。
       A nonplayer character learns to adapt to the fighting tactics of a player.
    神經網絡(Neural network), 貝葉斯(Bayesian), 遺傳算法(genetic algorithm)
    Computer Games as a Test Bed for AI Research
    “By about 2020 there will be microprocessors with the same computing power as certain models of the brain.
    Producing “real” intelligence within a computer will then be a software problem.”
    追擊與逃跑 Chasing and Evading
    (1)the decision to initiate a chase or to evade.
       (2)effecting the chase or evasion
       (3) obstacle avoidance
    基本追擊算法 Basic Chasing algorithm
    if (predatorX>preyX)
       predatorX--;
    else if (predatorX<preyX)
       predatorX++;
    if (predatorY>preyY)
       predatorY--;
    else if (predatorY<preyY)
       predatorY++;
    基本逃跑算法 Basic evade algorithm
    if (preyX>predatorX)
       preyX++;
    else if (preyX<predatorX)
       preyX--;
    if (preyY>predatorY)
       preyY++;
    else if (preyY<predatorY)
       preyY--;
    基于方塊的追擊算法 Basic tile-based chase algorithm
    if (predatorCol>preyCol)
       predatorCol--;
    else if (predatorCol<preyCol)
       predatorCol++;
    if (predatorRow>preyRow)
       predatorRow--;
    else if (predatorRow<preyRow)
       predatorRow++;
    按視線追擊 Line-of-Sight Chasing
    Line-of-Sight Chasing in Tiled Environment
    Bresenham versus alternate algorithm
    thinking
    行差值=9-3=6
    列差值=4-1=3
    行差值=6
    列差值=6
    thinking
    算法變量說明
    Row, Column-troll’s position (starting point)
        the current position of the troll
    endRow, endColumn-player’s position (ending point)
    pathRow, pathCol-each point in the troll’s path to its target
        the position of the troll’s desired location
    達到目標的路徑函數BuildPathToTarget function
    void ai _Entity ::BuildPathToTarget(void)
    {
      int nextCol=col;
      int nextRow=row;
      int deltaRow=endRow-row;
      int deltaCol=endCol-col;
      int stepCol, stepRow;
      int currentStep, fraction;
    }   
    路徑初始化 Path initialization
    for(currentStep=0; currentStep<kMaxPathLength; currentStep++)
    {
      pathRow[currentStep]=-1;
      pathCol[currentStep]=-1;
    }
    currentStep=0;
    pathRowTarget=endRow;
    pathColTarget=endCol;
    路徑方向計算 Path direction calculation
    if(deltaRow<0) stepRow=-1; else stepRow=1;
    if(deltaCol<0) stepCol=-1; else stepCol=1;
    deltaRow=abs(deltaRow*2);
    deltaCol=abs(deltaCol*2);
    pathRow[currentStep]=nextRow;
    pathCol[currentStep]=nextCol;
    currentStep++;
    算法分析-1
    (1)如果列長、行短:
           fraction=deltRow*2-deltCol;
          (i) fraction>=0 (行兩倍于列長)
              行、列都移一位,
              fraction=fraction-deltCol+deltRow
          (ii) fraction<0(行不能兩倍于列長)
              列移一位,
              fraction=fraction+deltRow
    算法分析-2
    (2)如果行長、列短或行列相等:
           fraction=deltCol*2-deltRow;
          (i) fraction>=0 (列兩倍于行長)
              列、行都移一位,
              fraction=fraction-deltRow+deltCol
          (ii) fraction<0(列不能兩倍于行長)
              行移一位,
              fraction=fraction+deltCol
    Bresenham algorithm-1
    if(deltaCol>deltaRow)
    {
      fraction=deltaRow*2-deltaCol;
      while(nextCol!=endCol)
     {
       if(fraction>=0)
       {
         nextRow=nextRow+stepRow;
         fraction=fraction-deltaCol;
       }
        nextCol=nextCol+stepCol;
        fraction=fraction+deltaRow;
        pathRow[currentStep]=nextRow;
        pathCol[currentStep]=nextCol;
        currentStep++;
     }
    }
    Bresenham algorithm-2
    else
    {
      fraction=deltaCol*2-deltaRow;
      while(nextRow!=endRow)
      {
       if(fraction>=0)
        {
         nextCol=nextCol+stepCol;
         fraction=fraction-deltaRow;
        }
        nextRow=nextRow+stepRow;
        fraction=fraction+deltaCol;
        pathRow[currentStep]=nextRow;
        pathCol[currentStep]=nextCol;
        currentStep++;
      }
    }
    Bresenham tile-based chase
    Line-of-Sight in Continuous Environments
    Example Line-of-sight chase function
    void DoLineofSightChase(void)
    {
      Vector u,v;
      bool left=false;
      bool right=false;
      u=VRotate2D(-Predator.fOrientation,
                                              (Prey.vPosion-Predator.vPosion));
      u.Normalize();
      if(u.x<-_TOL)
         left=true;
      else if(u.x>_TOL)
         right=true;
      Predator.SetThrusters(left,right);
    }
    截擊 Intercepting
    變量說明
    Vr=Vprey-Vpredator
    Sr=Sprey-Spredator
    Tc=|Sr|/|Vr|
    St=Sprey+(Vprey)×(Tc)
    Example Interception function
    void DoIntercept(void)
    {
      Vector u,v;
      Bool left=false;
      Bool right=false;
      Vector Vr,Sr,St;
      Double tc;
      Vr=Prey.vVelocity-Predator.vVelocity;
      Sr=Prey.vPosition-Predator.vPosition;
      tc=Sr.Magnitude()/Vr.Magnitude();
      St=Prey.vPosition+(Prey.vVelocity*tc);
      u=VRotate2D(-Predator.fOrientation, (St-Predator.vPosition));
      u.Normalize();
      if(u.x<-_TOL)
        left=true;
      else if(u.x>_TOL) right=true;
    Predator.SetThrusters(left,right);
    }
    Intercept scenario 1- initial trajectories
    Intercept scenario 2- Interception
    小結
    介紹Game AI
    Chasing and evading
    Tile-based environment
    Continuous environment
    Interception
    思考題
    為什么Bresenham 算法要優于其他算法呢?
    請編程比較Bresenham tile-based chase 與其他算法的不同。
    http://www.oreilly/catalog/ai
    本次實驗(實驗一)
    一個人一組,分別為predator 和prey。
    首先,以方塊表示每一步,建立顯示界面。
    其次,可獲得對方的位置信息,并根據位置信息設定追擊或逃跑的路線。(請在開始時,可將prey設為靜止狀態。)
    再次,可嘗試bresenham方式。
    請將完成情況按實驗報告形式寫于紙上,實驗結束時交上。
     

    相關PPT

    人工智能基礎06--專家系統ppt:這是人工智能基礎06--專家系統ppt,包括了專家系統概述,基于規則的專家系統,基于框架的專家系統,基于模型的專家系統,專家系統的設計、評價與開發,專家系統設計舉例,新型專家系統,知識發現等內容,歡迎點擊下載。
    人工智能第四章推理技術ppt:這是人工智能第四章推理技術ppt,包括了推理技術概述,基于謂詞邏輯知識表示方法的問題求解技術,不確定推理概述,非單調推理等內容,歡迎點擊下載。
    人工智能第五章專家系統ppt:這是人工智能第五章專家系統ppt,包括了ES基本概念,ES的產生與發展及今后展望,ES的結構,ES的創建步驟,ES的知識獲取,ES開發工具,ES實例等內容,歡迎點擊下載。
    《人工智能課件第二次課ppt》是由用戶C-arnalism于2018-03-31上傳,屬于行業PPT。
    顯示全部

    相關PPT

    熱門推薦

    熱門下載

    青青青伊人