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

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

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

3天內(nèi)不再提示

對弈人工智能!myCobot 280開源六軸機械臂Connect 4 四子棋對弈

大象機器人科技 ? 來源: 大象機器人科技 ? 作者: 大象機器人科技 ? 2023-05-29 15:26 ? 次閱讀

Introduction

Hi,guys.今天我們來介紹一下人工智能下棋,我們將用機械臂來作為對手跟你進行下棋。

人工智能下棋的研究可以追溯到20世紀50年代。當時,計算機科學家開始探索如何編寫程序,使計算機能夠下象棋。其中最著名的例子是由IBM研發(fā)的Deep Blue,它在1997年以3.5-2.5的成績擊敗了當時的世界象棋冠軍加里·卡斯帕羅夫。

人工智能下棋,就好像給電腦一個思考的方式讓它在比賽中取得勝利。這個思考的方式有很多種,大多數(shù)都源于優(yōu)秀的算法。Deep Blue的核心算法是基于暴力窮舉:生成所有可能的走法,然后執(zhí)行盡可能深的搜索,并不斷對局面進行評估,嘗試找出最佳走法。

今天我將要介紹一款AI機械臂下棋是如何來實現(xiàn)的。

**Connect 4 **

Connect4是今天要介紹的一種策略棋類游戲,也被稱為是四子棋。Connect4的游戲目標是在一個垂直放置的6行7列網(wǎng)格中先達成連續(xù)四個棋子的橫向、縱向或斜向排列。兩名玩家輪流在網(wǎng)格的頂部插入自己的棋子,棋子會落到當前列的最底部可用的位置。玩家可以選擇將自己的棋子放置在任意一列,但棋子只能被放置在已有棋子下方的位置。

就如動圖中所示,這就是connect4。

myCobot 280

機械臂這邊選擇的是myCobot 280 M5Stack,它是一款功能強大的桌面型六軸機械臂,它采用M5Stack-Basic作為控制核心,支持多種編程語言開發(fā)。Mycobot280的六軸結構使其具有高度的靈活性和精度,能夠進行各種復雜的操作和運動。它支持多種編程語言,包括PythonC++Java等,使開發(fā)者能夠根據(jù)自己的需求對機械臂進行編程和控制。它的簡單操作界面和詳細的用戶手冊使得用戶能夠快速上手,而且其嵌入式設計使得機械臂的體積小巧,易于攜帶和存儲。

下面是我們搭建的場景。

用myCobot來作為人工智能來跟我們進行下棋。

對弈算法

首先,我們得解決一個最關鍵的問題,就是應該用什么算法來進行對弈。換句話說就是給機械臂提供一個能夠進行思考的大腦。我們將為你簡單介紹幾種常見的對弈算法:

極小化極大算法:

這是一種經(jīng)典的博弈算法,適用于兩人對弈的游戲。它通過遞歸地模擬對手和自己的行動,評估每個可能的走法的得分,并選擇具有最優(yōu)得分的行動。極小化極大算法可以通過搜索棋局的樹狀結構來找到最佳的下棋策略。該算法是一個零總和算法,即一方要在可選的選項中選擇將其優(yōu)勢最大化的選擇,另一方則選擇令對手優(yōu)勢最小化的方法。而開始的時候總和為0。簡單舉例井字棋說明一下。

Max代表我們,Min代表對手。這個時候我們需要給每一種結果一個分數(shù),就是這里的Utility。這個分數(shù)是站在我們(也就是Max)的角度評估的,比如上圖中我贏了就是+1,輸了是-1,平局時0。所以,我們希望最大化這個分數(shù),而對手希望最小化這個分數(shù)。(在游戲中,這個分數(shù)被稱為static value。)這里要說一下,井字棋是個比較簡單的游戲,所以可以列出所有可能的結果。但是,大部分游戲是不太可能把所有結果都列出來的。根據(jù)計算機運算量,我們可能只能往前推7,8步,所以這個時候分數(shù)就不只-1,1,0這么簡單了,會有專門的算法來根據(jù)當前結果給不同的分數(shù)。

Alpha-Beta剪枝算法:

這是對極小化極大算法的優(yōu)化。它通過剪枝來減少搜索的分支數(shù),從而加快搜索速度。Alpha-Beta剪枝算法利用上下界(Alpha和Beta值)來判斷哪些分支可以被丟棄,從而減少搜索的深度。

神經(jīng)網(wǎng)絡+深度學習

我們設計的對弈算法connect4中用到的也是神經(jīng)網(wǎng)絡+深度學習來解決對弈的算法。

神經(jīng)網(wǎng)絡:

科學家一直希望模擬人的大腦,造出可以思考的機器。人為什么能夠思考?科學家發(fā)現(xiàn),原因在于人體的神經(jīng)網(wǎng)絡。神經(jīng)網(wǎng)絡是一種模擬人腦神經(jīng)系統(tǒng)結構和功能的數(shù)學模型,通過模擬神經(jīng)元之間的連接和信號傳遞來進行信息處理和學習。神經(jīng)網(wǎng)絡是一切人工智能的開始。

神經(jīng)網(wǎng)絡算法的基本思想是將輸入數(shù)據(jù)傳遞給網(wǎng)絡的輸入層,然后通過一系列中間層(隱藏層)的計算和傳遞,最終得到輸出層的結果。訓練過程通過調(diào)整連接權重來最小化實際輸出與期望輸出之間的差異,以優(yōu)化網(wǎng)絡的性能。

深度學習:

深度學習是一種機器學習的分支,專注于利用深度神經(jīng)網(wǎng)絡進行學習和推理。深度學習通過構建深層次的神經(jīng)網(wǎng)絡,也就是有多個中間層(隱藏層)的神經(jīng)網(wǎng)絡,來解決復雜的學習和決策問題。可以說深度學習是利用神經(jīng)網(wǎng)絡作為核心工具的一種學習方法。深度學習不僅包括了神經(jīng)網(wǎng)絡的結構和算法,還包括了訓練方法、優(yōu)化算法和大規(guī)模數(shù)據(jù)處理等方面的內(nèi)容。

項目的構建

項目主要分為,硬件和軟件兩個部分:

該項目中最為重要的就是信息收集和信息分析和處理這一部分內(nèi)容。

前面也提到了神經(jīng)算法和深度學習的相關知識,我們使用到的是DQN神經(jīng)網(wǎng)絡。

DQN神經(jīng)網(wǎng)絡

DQN神經(jīng)網(wǎng)絡是由DeepMind公司提出的,它結合了深度學習和強化學習的思想。DQN通過使用深度神經(jīng)網(wǎng)絡來估計狀態(tài)-動作值函數(shù)(Q函數(shù)),從而實現(xiàn)對復雜環(huán)境中的最優(yōu)決策DQN的核心思想是使用深度神經(jīng)網(wǎng)絡作為函數(shù)逼近器來近似狀態(tài)-動作值函數(shù)。通過將當前狀態(tài)作為輸入,神經(jīng)網(wǎng)絡輸出每個動作的對應Q值,即預測該動作在當前狀態(tài)下的長期回報。然后,根據(jù)Q值選擇最優(yōu)的動作進行執(zhí)行。

環(huán)境搭建

首先我們要定義Connect4這個游戲,用一個二維數(shù)組表示游戲棋盤,兩種顏色的棋子,紅色R,黃色Y。再定義游戲結束的條件,當有四個統(tǒng)一顏色的棋子連成一線就退出游戲。

#Define a 6*7 chessboard
self.bgr_data_grid = [[None for j in range(6)] for i in range(7)]

#Used to display the state of the board
def debug_display_chess_console(self):
    for y in range(6):
        for x in range(7):
            cell = self.stable_grid[x][y]
            if cell == Board.P_RED:
                print(Board.DISPLAY_R, end="")
            elif cell == Board.P_YELLOW:
                print(Board.DISPLAY_Y, end="")
            else:
                print(Board.DISPLAY_EMPTY, end="")
        print()
    print()

復制

下面是定義游戲是否結束的code:

def is_game_over(board):
    # Check if there are four consecutive identical pieces in a row.
    for row in board:
        for col in range(len(row) - 3):
            if row[col] != 0 and row[col] == row[col+1] == row[col+2] == row[col+3]:
                return True

    # Check if there are four consecutive identical pieces in a column.
    for col in range(len(board[0])):
        for row in range(len(board) - 3):
            if board[row][col] != 0 and board[row][col] == board[row+1][col] == board[row+2][col] == board[row+3][col]:
                return True

    # Examine if there are four consecutive identical pieces in a diagonal line.
    for row in range(len(board) - 3):
        for col in range(len(board[0]) - 3):
            if board[row][col] != 0 and board[row][col] == board[row+1][col+1] == board[row+2][col+2] == board[row+3][col+3]:
                return True

    for row in range(len(board) - 3):
        for col in range(3, len(board[0])):
            if board[row][col] != 0 and board[row][col] == board[row+1][col-1] == board[row+2][col-2] == board[row+3][col-3]:
                return True

    # Verify if the game board is filled completely.
    for row in board:
        if 0 in row:
            return False

    return True

復制

構建DQN神經(jīng)網(wǎng)絡

定義神經(jīng)網(wǎng)絡的輸入層和輸出層,其中輸入層的維度應與游戲板的狀態(tài)表示方式相匹配,輸出層的維度應與合法動作的數(shù)量相匹配。簡而言之,輸入層接受游戲棋盤的狀態(tài)信息,輸出層產(chǎn)生對應的動作選擇。

經(jīng)驗緩存區(qū)

機器是需要學習,我們要構建一個經(jīng)驗緩存區(qū),來存儲智能體的經(jīng)驗。這可以是一個列表或隊列,用于存儲游戲過程中的狀態(tài)、動作、獎勵和下一個狀態(tài)等信息。

下面是構建經(jīng)驗緩存區(qū)的偽代碼:

class ReplayBuffer:
    def __init__(self, capacity):
        self.capacity = capacity
        self.buffer = []

    def add_experience(self, experience):
        if len(self.buffer) >= self.capacity:
            self.buffer.pop(0)
        self.buffer.append(experience)

    def sample_batch(self, batch_size):
        batch = random.sample(self.buffer, batch_size)
        states, actions, rewards, next_states, dones = zip(*batch)
        return states, actions, rewards, next_states, dones

復制

決策

我們定義了一個名為EpsilonGreedyStrategy的策略類,使用ε-greedy策略進行動作選擇和探索。在初始化函數(shù)__init__()中,我們指定了探索率ε。select_action()方法根據(jù)Q值選擇動作,根據(jù)探索率的概率隨機選擇動作或選擇具有最高Q值的動作。

class EpsilonGreedyStrategy:
    def __init__(self, epsilon):
        self.epsilon = epsilon

    def select_action(self, q_values):
        if random.random() < self.epsilon:
            action = random.randint(0, len(q_values) - 1)
        else:
            action = max(enumerate(q_values), key=lambda x: x[1])[0]
        return action

復制

訓練框架

使用python的PyTorch框架構建訓練,循環(huán)訓練。定期使用當前的DQN神經(jīng)網(wǎng)絡與預訓練的或其他對手進行對弈評估,以評估智能體的性能。直至達到預設的要求。

總結:

本篇文章的內(nèi)容暫告一段落。本文主要介紹了DQN神經(jīng)算法是如何在Connect4 當中實現(xiàn)的,下一篇文章將介紹機械臂是如何根據(jù)的出來的最優(yōu)解來執(zhí)行的。文中算法的介紹只是冰山一角,如果你感興趣對弈算法可以自行查閱相關的書籍去進一步了解。

現(xiàn)在我們正處于時代的大變革,人工智能無處不在,不僅僅是在下棋中能夠戰(zhàn)勝頂尖的人們,在各個的領域都有著它們的身影。我們得抓住時代,抓住機會跟上這個充滿科技的21世紀。

我們會很快的更新出下一篇文章,如果你感興趣的話歡迎關注我們,在下方留言就是對我們最好的支持!

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器人
    +關注

    關注

    211

    文章

    28390

    瀏覽量

    206957
  • 人工智能
    +關注

    關注

    1791

    文章

    47208

    瀏覽量

    238298
  • 機械臂
    +關注

    關注

    12

    文章

    513

    瀏覽量

    24558
收藏 人收藏

    評論

    相關推薦

    使用myCobot 280 Jeston Nano進行物體精確識別追蹤

    ,以便在實際應用中發(fā)揮作用,這個項目涉及到許多技術和算法,包括視覺識別、手眼協(xié)同和機械控制等方面。 機械的介紹 mycobot280-J
    的頭像 發(fā)表于 05-24 18:20 ?1702次閱讀
    使用<b class='flag-5'>myCobot</b> <b class='flag-5'>280</b> Jeston Nano進行物體精確識別追蹤

    子棋游戲里如何實現(xiàn)悔棋功能啊

    基于labview的五子棋游戲,有人機對弈和雙人對弈模式,雙人對弈在不聯(lián)網(wǎng)的情況下
    發(fā)表于 10-10 14:18

    怎樣去設計一種人機對弈子棋程序

    子棋游戲應達到幾方面的要求?怎樣去設計一種人機對弈子棋程序?
    發(fā)表于 09-29 07:26

    基于LabVIEW的五子棋博弈算法

    針對目前五子棋人機對弈多數(shù)基于電腦、手機,缺少真實環(huán)境的問題,提出一種基于LabVIEW的博弈算法,并運用于真實的五子棋人機對弈。首先通過圖像采集系統(tǒng)獲取當前狀態(tài)下棋盤及人機雙方棋子的
    發(fā)表于 12-17 11:32 ?29次下載

    實現(xiàn)人與機器人的直接對弈_強大的對弈系統(tǒng)如何實現(xiàn)

    機器人技術是綜合了計算機、控制論、結構學、信息與傳感技術、仿生學及人工智能等多學科的一門高新技術。目前的人機對弈軟件不直觀、缺乏真正的對弈環(huán)境,而人機對弈機器人正是針對這些不足而設計的
    發(fā)表于 02-12 12:05 ?4678次閱讀

    3個時代,3盤對弈人工智能是否能繼續(xù)戰(zhàn)勝人類?

    從人機對弈這件小事,和你聊聊人工智能的發(fā)展。
    的頭像 發(fā)表于 03-30 10:19 ?1.2w次閱讀

    對弈機器人與圖像識別

    對弈機器人是河南省人工智能展覽館的明星展品之一,參與者可以體驗到“人機對戰(zhàn)”的挑戰(zhàn)與樂趣,在往期活動中深受大小學生的歡迎。與對弈機器人的對戰(zhàn)簡單來說可以分為:圖像識別信息獲取分析計算控制落子
    的頭像 發(fā)表于 01-13 11:28 ?2274次閱讀

    機械免費使用,學習ROS、Python火熱報名中

    延續(xù)至今。 今天我們將秉承自由共享的精神,和Arduino社區(qū)發(fā)起“百城萬里公益行”myCobot 280機械漂流活動。 極客愛好者通過由大象機器人學院提供的
    發(fā)表于 03-31 15:28 ?1253次閱讀

    myCobot機械應用于Unity機器人編程實戰(zhàn)課

    ER myCobot 280 Pi ,采用樹莓派微處理器,內(nèi)置ubuntu18.04系統(tǒng),無需搭配PC主控,鏈接外設,即可快速構建機械 編程教育、
    的頭像 發(fā)表于 06-16 14:33 ?2675次閱讀
    <b class='flag-5'>myCobot</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>應用于Unity機器人編程實戰(zhàn)課

    MyCobot機械開箱及開發(fā)前的準備工作(一)

    MyCobot機械是一款入門級的自由度機械,目前是國產(chǎn)
    的頭像 發(fā)表于 09-30 10:00 ?1479次閱讀
    <b class='flag-5'>MyCobot</b><b class='flag-5'>六</b><b class='flag-5'>軸</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>開箱及開發(fā)前的準備工作(一)

    Mycobot機械各關節(jié)的運動(三)

    這一節(jié)我們開始第一個程序,就是機械各關節(jié)的運動。讓我們首先打開Mycobot,然后登入一個終端,我們輸入“python”進入python環(huán)境。 ? 我們采用一邊實驗一邊介紹MyCobot
    的頭像 發(fā)表于 09-30 18:08 ?1318次閱讀
    <b class='flag-5'>Mycobot</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>各關節(jié)的運動(三)

    對弈人工智能myCobot 280開源機械Connect 4 對弈下篇

    前言 在上篇文章中,我們探討了如何創(chuàng)造一個能夠進行Connect4對弈大腦。簡單的介紹了幾種對弈算法,例如極小化極大算法,Alpha-Beta剪枝算法等,最關鍵的是目前最流行的神經(jīng)網(wǎng)絡算法和深度
    的頭像 發(fā)表于 06-16 17:16 ?833次閱讀
    <b class='flag-5'>對弈</b><b class='flag-5'>人工智能</b>!<b class='flag-5'>myCobot</b> <b class='flag-5'>280</b><b class='flag-5'>開源</b><b class='flag-5'>六</b><b class='flag-5'>軸</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b><b class='flag-5'>Connect</b> <b class='flag-5'>4</b> <b class='flag-5'>四</b><b class='flag-5'>子</b><b class='flag-5'>棋</b><b class='flag-5'>對弈</b>下篇

    開源機械myCobot 280末端執(zhí)行器實用案例解析

    使用。 本文中主要介紹4款常用的機械的末端執(zhí)行器。 Product myCobot 280 M5Stack
    的頭像 發(fā)表于 10-16 16:28 ?1256次閱讀
    <b class='flag-5'>開源</b><b class='flag-5'>六</b><b class='flag-5'>軸</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b><b class='flag-5'>myCobot</b> <b class='flag-5'>280</b>末端執(zhí)行器實用案例解析

    開源獲獎案例】機械控制系統(tǒng)

    ——來自迪文開發(fā)者論壇本期為大家推送迪文開發(fā)者論壇獲獎開源案例——機械控制系統(tǒng)。工程師采用T5L
    的頭像 發(fā)表于 12-23 08:13 ?1259次閱讀
    【<b class='flag-5'>開源</b>獲獎案例】<b class='flag-5'>四</b><b class='flag-5'>軸</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>控制系統(tǒng)

    大象機器人開源協(xié)作機械機械接入GPT4o大模型!

    本文已經(jīng)或者同濟豪兄作者授權對文章進行編輯和轉載 引言 隨著人工智能和機器人技術的快速發(fā)展,機械在工業(yè)、醫(yī)療和服務業(yè)等領域的應用越來越廣泛。通過結合大模型和多模態(tài)AI,
    的頭像 發(fā)表于 07-03 14:09 ?860次閱讀
    大象機器人<b class='flag-5'>開源</b>協(xié)作<b class='flag-5'>機械</b><b class='flag-5'>臂</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>接入GPT<b class='flag-5'>4</b>o大模型!
    主站蜘蛛池模板: 皮皮在线精品亚洲| 国产白丝精品爽爽久久蜜臀| 免费看a毛片| 68日本xxxxxxxx79| 男男高h浪荡受h| brazzers欧美孕交| 日本G奶乳液汁| 灌满内射HP1V1| 无限资源在线观看8| 国产人妻人伦精品59HHH| 亚洲国产区中文在线观看| 红豆视频免费资源观看| 一本道高清码v京东热| 久久青青草原精品国产软件| 91久久线看在观草草青青| 男女边吃奶边做边爱视频| ebc5恐怖5a26房间| 日日干夜夜爽| 国产精品第3页| 亚洲精品成人AV在线观看爽翻 | 久久青青热| 99久久国产露脸精品国产吴梦梦| 欧美精品熟妇乱| 粗大分开挺进内射| 婷婷久久无码欧美人妻| 国厂精品114福利电影| 在线成 人av影院| 欧美高清video mr.sexo| 成 人 免费 黄 色 网站无毒下载 成 人 动漫3d 在线看 | 伊人网中文字幕| 免费国产足恋网站| 白丝萝莉喷水| 校花在公车上被内射好舒服| 精品夜夜澡人妻无码AV| 98色精品视频在线| 色婷婷国产精品视频一区二区| 国产亚洲精品久久孕妇呦呦你懂| 伊人久久影院大香线蕉| 欧美 日韩 无码 有码 在线| 福利啪啪吧| 一个人的免费完整在线观看HD|