色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

大量游戲中使用的人工智能概念

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-08-20 08:44 ? 次閱讀

介紹

本文將介紹大量游戲中使用的人工智能概念,你將會了解解決AI問題有哪些可用的工具,它們是如何一起工作的,以及你將如何在所選語言或引擎中實施這些工具。

本文需要你對游戲有基本的理解,同時掌握一些數學概念,例如幾何、三角函數等等。其中舉出的代碼例子都是虛擬代碼,所以不用具備特別的編程語言水平。

什么是游戲AI

游戲AI主要解決的是游戲人物根據當前條件應該做出哪些動作。傳統AI環境中所指的智能體通常是游戲中的人,但現在也可以指一輛車、機器人或更抽象的,例如一群目標對象、一個國家或人口。它們都需要觀察周圍的環境,并基于環境做出決定、執行動作。通常這一過程是感知/思考/行動的循環。

感知(Sense):智能體檢測或被告知環境中有可能會影響其動作的物體(附近有危險、要撿的物品、需要查看的地點)

思考(Think):智能體要想出應對方法(比如要選擇一個安全的時機撿東西,或者決定是先攻擊還是隱藏)

行動(Act):智能體將之前的決策付諸行動(例如開始向敵人或目標物體移動)

環境變化,在新數據下重復這一循環……

在現實AI問題中,大部分公司重點關注的是“感知”這一環節。例如,自動駕駛汽車必須給前方道路拍照,并將其與雷達或LIDAR數據進行對比,之后嘗試解讀它們看到了什么。這通常由機器學習方法來完成。

游戲卻不同,因為它們不需要復雜的系統來提取信息,因為大部分信息都在模擬系統內部。我們不需要運行圖片識別算法來發現敵人的位置;游戲知道敵人在哪,可以直接將信息反饋給決策過程。所以游戲中的“感知”環節比較簡單,難的是后兩步。

游戲AI的發展限制

游戲中的AI通常會面臨以下幾種限制:

通常不會像機器學習算法那樣“預訓練”;寫一個神經網絡觀察上千名玩家并學習是不現實的,因為這種方法在游戲還未發布的時候根本無法進行。

游戲應該提供趣味性和挑戰性,而不是追求“最優”。所以即使智能體的水平能超過人類,也不會是設計師追求的目的。

智能體還不能太“機械”,要讓對手真的認為他的隊友是“人”而不是“機器”。AlphaGo雖然厲害,但與之交手的選手們都覺得它下棋的方法很不尋常,感覺像和外星人對戰。所以游戲AI也要調整得更“擬人化”一些。

要支持實時處理,算法不能長時間占用GPU就為了想出對策。10毫秒已經過長了。

理想的系統是數據驅動而不是硬編碼,這樣即使不會編程的人也能做出調整。

有了這些原則,我們可以開始看看在感知、思考、行動循環中所使用的簡單AI方法了。

基本決策制定

讓我們以簡單的游戲《乓》為例,要保證乒乓球可以彈到球拍上,如果掉落就算輸了。AI的任務就是決定球拍的移動方向。

硬編碼條件語句

如果我們相用AI控制球拍,那么最直接最簡單的方法就是嘗試讓球拍一直位于乒乓球的下方。當球接觸球拍后,球拍的位置就是合適的。

用虛擬代碼表示:

every frame/update while the game is running:

if the ball is to the left of the paddle:

move the paddle left

else if the ball is to the right of the paddle:

move the paddle right

這種方法太簡單了,但是在代碼中:

“感知”部分有兩個“if”語句。游戲知道球和球拍的位置,所以AI詢問游戲二者的位置,從而感知到球的運動方向。

“思考”部分同樣在兩個“if”語句之中。它包含了兩個決策,最終會決定向左、向右或不移動球拍。

“行動”表現在代碼中就是向左或向右移動。但是在其他與戲中可能包括移動的速度。

我們將這種方法稱為“reactive”,因為規則很簡單。

決策樹

乒乓球游戲也可以用決策樹模型進行可視化:

第一眼看去,你可能覺得決策樹和if語句沒什么區別。但是這個系統中,每個決策都包括一個精確的條件和兩種可能的輸出,可以讓開發者不用硬編碼就能從代表決策樹的數據中搭建AI。用簡單的表格來描繪決策樹是這樣的:

如果樣本很多,決策樹真的非常強大,可以高效地進行情境分辨。

腳本撰寫

設計AI的人員可以根據自己的想法安排決策樹,但是他們必須依靠編程人員提供的所需條件和動作。如果我們給設計人員更好的工具,可以讓他們創造自己的條件,那會怎樣呢?

編程者可以將條件(判斷球在球拍的左邊還是右邊)換成某項值,決策樹的數據看起來可能像這樣:

跟上面的表格相同,但是決策有它們各自的代碼。更進一步,將這樣的表達方式(用腳本語言而不是數據)帶入邏輯結論也是可能并且常見的。

對事件做出反應

以上的乒乓游戲中,核心思想就是不斷運行三步循環,并根據上一步的環境狀態采取行動。但是在更復雜的游戲中,與評估各項條件相比,更多的是對情況做出反應,這在游戲場景的變換中是很常見的。

比如在一項射擊游戲中,敵人首先是靜止的,一旦他們發現了玩家,不同角色的敵人就會采取不同行動。沖鋒兵可能會向玩家攻擊,狙擊手會位于后方準備射擊。這也是基本的應對系統,但是它需要更高級的決策過程。

高級決策制定

有時,我們想根據智能體目前的狀態做出不同的決策,對決策樹或腳本來說,條件過多時就無法高效地運行。有時,我們要提前思考并估計環境會如何變化,所以就需要更復雜的剞劂方法。

有限狀態機(Finite state machine)

一個有限狀態機(FSM)指的是某個物體,例如AI智能體,目前處在某個狀態中,之后會轉移到另一個狀態中。由于狀態的總數是有限的,所以稱為“有限狀態機”。現實中此類例子是紅綠燈。

在游戲中,讓衛兵巡邏、攻擊或逃跑等動作可以用簡單的if語句表示。但是如果加上狀態,例如游蕩、搜查、跑步尋求救援等動作,if條件句就會變得很復雜。考慮到所有狀態,我們列出了各狀態之間需要的過渡狀態。

用可視化圖表示:

層次狀態機(Hierarchical state machine)

你也許注意到上表中有些過渡狀態是相同的游蕩狀態中的大部分過渡和巡邏中的狀態相同,但最好是互相區分開。游蕩和巡邏都是非戰斗狀態下的一部分,所以我們可以看做它的“子狀態”:

主要狀態

非戰斗狀態

可視化

行為樹(behavior trees)

在決策過程中,有個小問題,即過渡原則和當前狀態緊密相關。在很多游戲中,這種方法沒為題,使用上述層次狀態機還能減少重復。但是有時你想有一種通用的規則,不需要考慮狀態。例如當智能體的健康值減少到25%,你可能想趕快逃跑。當設計師把這一數值降到10%時,你可能會改變所有相關的過渡狀態。

對于這種情況,理想狀態下需要一個系統,該系統決定哪些狀態可以在另一些狀態之外存在,以便能在一個地方正確轉換。這就是行為樹(behavior tree)。

部署行為樹的方法有很多,但是核心思想都相同:算法開始于一個“根節點”,樹中的各個節點表示決策或動作。例如前面提到的衛兵層次狀態機,用行為樹表示:

你可能會發現,這個樹中從巡邏狀態返回到游蕩狀態沒有過度,這時就需要引入無條件的“重復”節點:

行動和導航

我們有了乒乓球拍移動和衛兵作戰的例子,但是我們要怎樣真正地在一段時間內讓它們移動呢?如何設置速度、如何躲避障礙、設計線路等等?這一部分我們將詳細講解。

控制

從基礎層面來說,我們可以認為每個智能體有自己的行動速度和方向,它們會在思考階段計算速度和方向,在行動階段執行。如果我們知道智能體的目的地,就可以用等式表示:

desired_travel = destination_position – agent_position

但是,在更復雜的環境中,簡單的等式是處理不了的,也許速度過慢、智能體會在半路遇到障礙等。所以,有時需要考慮加入其他值,讓行走動作更復雜。

找路

在網格中,如果要走到目的地,要先看看周圍可以移動的網格。下圖是一個簡單的搜索動作案例,首先從起點開始搜索,知道找到目的地,再規劃路線:

但是,這種尋找方式好像太浪費了,擴展了很久才找到最佳路線。下面這種方法在找路時,每次只選擇目標坐標方向的最佳方塊,從而能減少很多候選方塊:

學習與適應

雖然文章開頭我們提到,游戲AI不常用到機器學習,但是我們從中也可以有所借鑒,在設計類游戲或對抗類游戲中也許有用。例如在數據和概率方面,我們可以用樸素貝葉斯分類器來檢查大量輸入的數據,并嘗試分類,讓智能體對當前情況做出合適的反應。在預測方面可以用到馬爾可夫模型等等。

知識表示(Knowledge representation)

我們已經討論了做決策、計劃、預測的各種方法,但是如何才能更有效地掌握整個游戲世界呢?我們應該如何收集并組織所有的信息?如何將數據轉化成信息或知識?各種游戲的方法各不相同,但是有幾種相同的辦法可以使用。

標簽

將用于搜索的碎片化信息打標簽,這是最常見的方法。在代碼中,標簽常用字符串表示,但是如果你知道所有使用的標簽,你就能將字符串轉換成唯一的數字,從而節省空間,加速搜索。

智能目標

有時,標簽不足以涵蓋所有需要的有用信息,所以另一種存儲信息的方式就是告訴AI它們的備選項,讓它們根據需要選擇。

回應曲線

回應曲線,簡單地說就是它是一張圖,輸入用x軸表示,虛擬的值,例如“最近的敵人距離”和輸出用Y軸表示,通常從0.0到1.0之間。該圖表示了輸入到輸出之間的映射關系。

黑板

黑板,顧名思義,記錄的是游戲中各個參與者做出的找路動作或決定,其他人也可以使用其中記錄的數據。

影像力圖

游戲AI經常需要考慮向哪里移動等問題,這類問題通常可以看做是“地理”問題,需要了解環境的形式和敵人的位置。我們需要一種方法將地形考慮進去,對環境有個大概了解,影像力圖就是為了解決這個問題做出的數據機構。

結語

本文對游戲中使用的AI進行了大致講解,它們的使用場景都很有用,其中的一些技術也許不常見,但是很有潛力。由于本文篇幅較長,我們并未對各項方法做詳細介紹。感興趣的同學可查閱原文。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程語言
    +關注

    關注

    10

    文章

    1945

    瀏覽量

    34755
  • 人工智能
    +關注

    關注

    1791

    文章

    47314

    瀏覽量

    238614

原文標題:新手指南 | 游戲AI所需技術詳解

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    人工智能是什么?

    海量的數據中通過不斷優化的算法來組建適合的數據群組。單從這一點就可以看出,數據的大量積累也是需要經過長時間才能做到的,這也是為什么人工智能領域只有大公司、企業以及科研機構才能有時間、有金錢和精力去投入
    發表于 09-16 15:40

    人工智能技術—AI

      人工智能技術的概念從出來到現在已經有很多年的歷史了,其實所謂的人工智能技術本身就是一種模擬人類大腦的思考方式的一種技術,它的英文簡稱是AI技術,在西方國家,人工智能技術被認為是計算
    發表于 10-21 12:03

    人工智能的前世今生 引爆人工智能大時代

    `昨天在論壇看了一個帖子一個故意不通過圖靈測試的人工智能,在這之前我也一直對人工智能這一塊很感興趣,只是工作領域不涉及到這一塊,并且一直覺得人工智能還離我們很遙遠,看了昨天的文章,突然覺得說不定哪天
    發表于 03-03 11:05

    人類與人工智能機器人合作的前景

    的人之所以不會被機器人取代,因為他們總是自己創造工作。  第二種是用心提供服務的人。這類人永遠不會被 人工智能行業云 所取代,因為機器人效率雖然很高,但是毫無溫度。沒有感情永遠是機器的軟肋,不能
    發表于 04-16 17:42

    3種適用于人工智能開發的編程語言

    了3種比較適用于人工智能開發的編程語言,希望能夠對你有所幫助。PythonPython由于簡單易用,是人工智能領域中使用最廣泛的編程語言之一,它可以無縫地與數據結構和其他常用的AI算法一起
    發表于 09-12 10:45

    “洗牌”當前 人工智能企業如何延續熱度?

    在少數的企業身上,強者恒強、弱者淘汰的局面已經形成。此外,截然不同的是,上至***機構下至平民百姓,對當下的人工智能項目不再盲目追捧,而是提出異議和擔憂。9月20日,知乎用戶質疑科大訊飛翻譯技術“造假
    發表于 11-07 11:49

    解讀人工智能的未來

    `已歷經60多年的人工智能在物聯網以及大數據的推動下,實現飛躍式的發展,并且迎來了第三個黃金周期。必優傳感今天和大家解讀一下關于人工智能的未來。自從有了人工智能,引發了人類的各種“未來論”。有人說
    發表于 11-14 10:43

    人工智能:超越炒作

    視為“強AI”。雖然專家們對是否能夠實現強大的人工智能的問題存在分歧,但并不能阻止他們嘗試。自2013年以來,人工智能的外部投資增長了兩倍這項技術具有破壞性潛力的一個可靠指標是投資方面。根據麥肯錫
    發表于 05-29 10:46

    什么是基于云計算的人工智能服務?

    如今,采用人工智能的企業遇到了一個主要障礙,那就是在內部開發人工智能產品成本高昂,因此有了外包人工智能產品的需求。而對于從中小企業到預算受限的大型企業來說,通過云計算來采用人工智能的成
    發表于 09-11 11:51

    人工智能的應用領域有哪些?

    表明,到2030年,人工智能和機器人可能會減少全球多達30%的人類勞動,到2030年自動化將取代4-8億個工作。1、機械加工機器人從事的零件鑄造、激光切割以及水射流切割等工作;2、機器人涂裝、點膠
    發表于 10-23 11:07

    路徑規劃用到的人工智能技術

    路徑規劃用到的人工智能技術二 人工智能編程語言/數據結構與算法三 人工智能基礎原理四 智能信息獲取(簡稱爬蟲) 與數據分析1、發起請求3、解析內容4、保存數據二、Requests庫介紹
    發表于 07-20 06:53

    人工智能芯片是人工智能發展的

    人工智能芯片是人工智能發展的 | 特倫斯謝諾夫斯基責編 | 屠敏本文內容經授權摘自《深度學習 智能時代的核心驅動力量》從AlphaGo的人機對戰,到無人駕駛汽車的上路,再到AI合成主播
    發表于 07-27 07:02

    人工智能基本概念機器學習算法

    目錄人工智能基本概念機器學習算法1. 決策樹2. KNN3. KMEANS4. SVM5. 線性回歸深度學習算法1. BP2. GANs3. CNN4. LSTM應用人工智能基本概念
    發表于 09-06 08:21

    什么是人工智能、機器學習、深度學習和自然語言處理?

    人工智能,在目前的關鍵時刻,是關于神經網絡的。目前,人工智能使用與典型計算機相同的 CMOS 硬件。目前的人工智能專注于開發注入類人智能的算法功能。該學科的重點是通過
    發表于 03-22 11:19

    人工智能游戲

    游戲人工智能人工智能游戲中的應用和實踐。通過分析游戲場景變化、玩家輸入獲得環境態勢的理解,進而控制
    的頭像 發表于 01-30 15:59 ?736次閱讀
    主站蜘蛛池模板: 岛国片在线免费观看| 午夜福利理论片高清在线| 99免费观看视频| 亚欧成人毛片一区二区三区四区| 久久久无码精品亚洲日韩按摩 | 亚洲免费大全| 日韩hd高清xxxⅹ| 两个女人互添下身高潮自视频| 国产精品野外AV久久久| 99视频这里只有精品| 夜蒲团之5阳性之教| 十分钟免费视频大全在线观看| 免费在线观看黄色网址| 九九热在线观看| 国产欧美精品一区二区三区-老狼| www.97干| 97人妻无码AV碰碰视频| 一个人免费观看HD完整版| 午夜福利体验免费体验区| 色www精品视频在线观看| 暖暖 视频 在线 观看 高清 | 日产精品久久久久久久蜜殿| 男欢女爱免费视频| 久久精品中文字幕免费| 好男人好资源视频高清| 国产精品久久久亚洲偷窥女厕| 播色屋97超碰在人人| 91情国产l精品国产亚洲区| 伊人影院网| 亚洲中文字幕无码一去台湾| 亚洲国产精麻豆| 先锋影音av资源站av| 熟妇少妇任你躁在线无码| 日韩内射美女人妻一区二区三区| 欧美色图一区二区三区| 免费精品美女久久久久久久久| 久久亚洲黄色| 久久亚洲AV成人无码国产漫画 | H厨房灌草莓| 99久久蜜臀亚洲AV无码精品| 2021精品国产综合久久|