对弈人工智能!myCobot 280开源六轴机械臂Connect 4 四子棋对弈

这篇具有很好参考价值的文章主要介绍了对弈人工智能!myCobot 280开源六轴机械臂Connect 4 四子棋对弈。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Connect 4 myCobot280

Introduction

Hi,guys.今天我们来介绍一下人工智能下棋,我们将用机械臂来作为对手跟你进行下棋。

人工智能下棋的研究可以追溯到20世纪50年代。当时,计算机科学家开始探索如何编写程序,使计算机能够下象棋。其中最著名的例子是由IBM研发的Deep Blue,它在1997年以3.5-2.5的成绩击败了当时的世界象棋冠军加里·卡斯帕罗夫。

对弈人工智能!myCobot 280开源六轴机械臂Connect 4 四子棋对弈,人工智能,协作机器人,桌面六轴机械臂,人工智能,开源

人工智能下棋,就好像给电脑一个思考的方式让它在比赛中取得胜利。这个思考的方式有很多种,大多数都源于优秀的算法。Deep Blue的核心算法是基于暴力穷举:生成所有可能的走法,然后执行尽可能深的搜索,并不断对局面进行评估,尝试找出最佳走法。

今天我将要介绍一款AI机械臂下棋是如何来实现的。

Connect 4

Connect4是今天要介绍的一种策略棋类游戏,也被称为是四子棋。Connect4的游戏目标是在一个垂直放置的6行7列网格中先达成连续四个棋子的横向、纵向或斜向排列。两名玩家轮流在网格的顶部插入自己的棋子,棋子会落到当前列的最底部可用的位置。玩家可以选择将自己的棋子放置在任意一列,但棋子只能被放置在已有棋子下方的位置。

对弈人工智能!myCobot 280开源六轴机械臂Connect 4 四子棋对弈,人工智能,协作机器人,桌面六轴机械臂,人工智能,开源

就如动图中所示,这就是connect4。

myCobot 280

机械臂这边选择的是myCobot 280 M5Stack,它是一款功能强大的桌面型六轴机械臂,它采用M5Stack-Basic作为控制核心,支持多种编程语言开发。Mycobot280的六轴结构使其具有高度的灵活性和精度,能够进行各种复杂的操作和运动。它支持多种编程语言,包括Python、C++、Java等,使开发者能够根据自己的需求对机械臂进行编程和控制。它的简单操作界面和详细的用户手册使得用户能够快速上手,而且其嵌入式设计使得机械臂的体积小巧,易于携带和存储。

下面是我们搭建的场景。

对弈人工智能!myCobot 280开源六轴机械臂Connect 4 四子棋对弈,人工智能,协作机器人,桌面六轴机械臂,人工智能,开源

用myCobot来作为人工智能来跟我们进行下棋。

对弈算法

首先,我们得解决一个最关键的问题,就是应该用什么算法来进行对弈。换句话说就是给机械臂提供一个能够进行思考的大脑。我们将为你简单介绍几种常见的对弈算法:

极小化极大算法:

这是一种经典的博弈算法,适用于两人对弈的游戏。它通过递归地模拟对手和自己的行动,评估每个可能的走法的得分,并选择具有最优得分的行动。极小化极大算法可以通过搜索棋局的树状结构来找到最佳的下棋策略。该算法是一个零总和算法,即一方要在可选的选项中选择将其优势最大化的选择,另一方则选择令对手优势最小化的方法。而开始的时候总和为0。简单举例井字棋说明一下。

对弈人工智能!myCobot 280开源六轴机械臂Connect 4 四子棋对弈,人工智能,协作机器人,桌面六轴机械臂,人工智能,开源

Max代表我们,Min代表对手。这个时候我们需要给每一种结果一个分数,就是这里的Utility。这个分数是站在我们(也就是Max)的角度评估的,比如上图中我赢了就是+1,输了是-1,平局时0。所以,我们希望最大化这个分数,而对手希望最小化这个分数。(在游戏中,这个分数被称为static value。)这里要说一下,井字棋是个比较简单的游戏,所以可以列出所有可能的结果。但是,大部分游戏是不太可能把所有结果都列出来的。根据计算机运算量,我们可能只能往前推7,8步,所以这个时候分数就不只-1,1,0这么简单了,会有专门的算法来根据当前结果给不同的分数。

Alpha-Beta剪枝算法:

这是对极小化极大算法的优化。它通过剪枝来减少搜索的分支数,从而加快搜索速度。Alpha-Beta剪枝算法利用上下界(Alpha和Beta值)来判断哪些分支可以被丢弃,从而减少搜索的深度。

神经网络+深度学习:

我们设计的对弈算法connect4中用到的也是神经网络+深度学习来解决对弈的算法。

神经网络:

科学家一直希望模拟人的大脑,造出可以思考的机器。人为什么能够思考?科学家发现,原因在于人体的神经网络。神经网络是一种模拟人脑神经系统结构和功能的数学模型,通过模拟神经元之间的连接和信号传递来进行信息处理和学习。神经网络是一切人工智能的开始。

对弈人工智能!myCobot 280开源六轴机械臂Connect 4 四子棋对弈,人工智能,协作机器人,桌面六轴机械臂,人工智能,开源

神经网络算法的基本思想是将输入数据传递给网络的输入层,然后通过一系列中间层(隐藏层)的计算和传递,最终得到输出层的结果。训练过程通过调整连接权重来最小化实际输出与期望输出之间的差异,以优化网络的性能。

深度学习:

深度学习是一种机器学习的分支,专注于利用深度神经网络进行学习和推理。深度学习通过构建深层次的神经网络,也就是有多个中间层(隐藏层)的神经网络,来解决复杂的学习和决策问题。可以说深度学习是利用神经网络作为核心工具的一种学习方法。深度学习不仅包括了神经网络的结构和算法,还包括了训练方法、优化算法和大规模数据处理等方面的内容。

项目的构建

项目主要分为,硬件和软件两个部分:

对弈人工智能!myCobot 280开源六轴机械臂Connect 4 四子棋对弈,人工智能,协作机器人,桌面六轴机械臂,人工智能,开源

该项目中最为重要的就是信息收集和信息分析和处理这一部分内容。

前面也提到了神经算法和深度学习的相关知识,我们使用到的是DQN神经网络。

DQN神经网络

DQN神经网络是由DeepMind公司提出的,它结合了深度学习和强化学习的思想。DQN通过使用深度神经网络来估计状态-动作值函数(Q函数),从而实现对复杂环境中的最优决策DQN的核心思想是使用深度神经网络作为函数逼近器来近似状态-动作值函数。通过将当前状态作为输入,神经网络输出每个动作的对应Q值,即预测该动作在当前状态下的长期回报。然后,根据Q值选择最优的动作进行执行。

环境搭建

首先我们要定义Connect4这个游戏,用一个二维数组表示游戏棋盘,两种颜色的棋子,红色R,黄色Y。再定义游戏结束的条件,当有四个统一颜色的棋子连成一线就退出游戏。

#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()

复制

对弈人工智能!myCobot 280开源六轴机械臂Connect 4 四子棋对弈,人工智能,协作机器人,桌面六轴机械臂,人工智能,开源

下面是定义游戏是否结束的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神经网络

定义神经网络的输入层和输出层,其中输入层的维度应与游戏板的状态表示方式相匹配,输出层的维度应与合法动作的数量相匹配。简而言之,输入层接受游戏棋盘的状态信息,输出层产生对应的动作选择。

经验缓存区

机器是需要学习,我们要构建一个经验缓存区,来存储智能体的经验。这可以是一个列表或队列,用于存储游戏过程中的状态、动作、奖励和下一个状态等信息。

下面是构建经验缓存区的伪代码:

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策略进行动作选择和探索。在初始化函数__init__()中,我们指定了探索率ε。select_action()方法根据Q值选择动作,根据探索率的概率随机选择动作或选择具有最高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框架构建训练,循环训练。定期使用当前的DQN神经网络与预训练的或其他对手进行对弈评估,以评估智能体的性能。直至达到预设的要求。

link:https://twitter.com/i/status/1651528699945291776

总结:

本篇文章的内容暂告一段落。本文主要介绍了DQN神经算法是如何在Connect4 当中实现的,下一篇文章将介绍机械臂是如何根据的出来的最优解来执行的。文中算法的介绍只是冰山一角,如果你感兴趣对弈算法可以自行查阅相关的书籍去进一步了解。

现在我们正处于时代的大变革,人工智能无处不在,不仅仅是在下棋中能够战胜顶尖的人们,在各个的领域都有着它们的身影。我们得抓住时代,抓住机会跟上这个充满科技的21世纪。

我们会很快的更新出下一篇文章,如果你感兴趣的话欢迎关注我们,在下方留言就是对我们最好的支持!文章来源地址https://www.toymoban.com/news/detail-521527.html

到了这里,关于对弈人工智能!myCobot 280开源六轴机械臂Connect 4 四子棋对弈的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能_CPU安装运行ChatGLM大模型_安装清华开源人工智能AI大模型ChatGlm-6B_004---人工智能工作笔记0099

    上一节003节我们安装到最后,本来大模型都可以回答问题了,结果, 5分钟后给出提示,需要GPU,我去..继续看官网,如何配置CPU运行  没办法继续看: 这里是官网可以看到  需要gcc的版本是11.3.0,这里我们先没有去安装,直接试试再说 yum install epel-release yum install gcc-11.3.0 安装的话执行这

    2024年02月21日
    浏览(66)
  • TensorFlow人工智能开源深度学习框架简单认识

    TensorFlow是一个使用数据流图进行数值计算的开源深度学习框架。它由Google Brain团队开发,并于2015年开源发布。TensorFlow的核心概念是使用图表示计算任务,其中节点表示操作,边表示数据流动。 TensorFlow被广泛用于机器学习和深度学习任务。它的特点包括: 强大的计算能力:

    2024年01月21日
    浏览(54)
  • 【AI人工智能】LLM 开源中文大语言模型集合

    整理开源的中文大语言模型,以规模较小、可私有化部署、训练成本较低的模型为主,包括底座模型,垂直领域微调及应用,数据集与教程等。 目录 1. Model 2. Application 3. Dataset 4. Evaluation 5. Tutorial 6. R

    2024年02月09日
    浏览(60)
  • Python开源项目之人工智能老照片修复算法学习

    老旧或者破损的照片如何修复呢?本文主要分享一个博主使用后非常不错的照片恢复开源项目:Bringing-Old-Photos-Back-to-Life。 项目的Github地址:项目地址 我们先看看官方给出的效果图: 就算现在看到这张图,我仍然觉着非常惊艳。下面我会把项目环境安装部署,到最后使用的

    2024年02月03日
    浏览(70)
  • 开源 sysgrok — 用于分析、理解和优化系统的人工智能助手

    作者:Sean Heelan 在这篇文章中,我将介绍 sysgrok,这是一个研究原型,我们正在研究大型语言模型 (LLM)(例如 OpenAI 的 GPT 模型)如何应用于性能优化、根本原因分析和系统工程领域的问题。 你可以在 GitHub 上找到它。  sysgrok 可以执行以下操作: 采用分析器识别出最昂贵的函

    2024年02月12日
    浏览(39)
  • 聚焦云计算、大数据、人工智能等开源技术,这场开源开发者的盛会不容错过!...

    COSCon\\\'22 开源社/KAIYUANSHE    作为业界具有广泛影响力的开源年度盛会,2022 第七届中国开源年会 (COSCon\\\'22) 将于 10 月 29 日 - 30 日 在线上(元宇宙+传统线上直播渠道) 线下(10+ 线下分会场)同步拉开帷幕。 大会共设有 1 个主论坛和 16 个分论坛 ,包含人工智能、云计算、大数

    2024年02月02日
    浏览(49)
  • 百度安全七大开源项目构建新一代人工智能安全技术栈

    新技术、新业态催生了传统网络安全格局的深刻变革。伴随移动互联网,大数据、云计算、人工智能等新一代信息技术的快速发展,围绕网络和数据的服务与应用呈现爆发式增长,智能设备将无所不在,智能家居、无人车、物联网将渗透到人类社会的各个角落,丰富的应用场

    2024年02月22日
    浏览(66)
  • Teamlinker:基于人工智能的新一代团队协作开源解决方案

    企业用户团队协作解决方案 团队协作从未如此轻松 在上一家工作的时候,当时我们用的项目管理软件是 jira ,视频会议是 zoom ,日历是 office ,平时的沟通则是用的微信,在不同的平台间切换是一件让人疲惫不堪的事情,同时公司每年在这些产品的开销也很多,当时我就有想

    2024年02月03日
    浏览(72)
  • 人工智能_PIP3安装使用国内镜像源_安装GIT_普通服务器CPU_安装清华开源人工智能AI大模型ChatGlm-6B_002---人工智能工作笔记0097

    接着上一节来看,可以看到,这里 创建软连接以后 可以看到执行python3 -V 就可以看到已经安装成功 python3 然后再去安装pip3  首先去下载软件,到/data/soft ,可以用wget命令也可以自己用浏览器下载 然后再去安装 python3 get-pip.py 可以看到报错了

    2024年02月21日
    浏览(70)
  • AI驱动的未来:探索人工智能的无限潜力 | 开源专题 No.39

    这一系列开源项目代表着多个领域的最新技术成果,包括深度学习、自然语言处理、计算机视觉和分布式训练。它们共同的特点是致力于教育、资源分享、开源精神、多领域应用以及性能和效率的追求,为广大开发者、研究者和学生提供了宝贵的工具和知识,推动了人工智能

    2024年02月08日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包