多代理系统中的共识算法与决策机制:从“蚂蚁搬家”到“智能协同”的集体智慧密码

关键词

多代理系统(MAS)、共识算法、决策机制、分布式协同、拜占庭容错、智能代理、集体智能

摘要

当一群蚂蚁能精准找到食物并协同搬运回家时,当自动驾驶车队能同步调整队形规避障碍时,当区块链节点能在无中心控制下确认交易时,背后都藏着同一个“集体智慧密码”——多代理系统(Multi-Agent System, MAS)的共识与决策机制。本文将从“蚂蚁搬家”的生活化比喻切入,逐步解析MAS中“如何让自主代理达成一致”(共识算法)和“如何根据一致意见行动”(决策机制)的核心逻辑。我们会用Raft、PBFT等经典算法的代码示例、Mermaid流程图还原共识过程,用博弈论模型解释决策的合理性,并结合机器人swarm、区块链等实际场景,探讨共识与决策的落地挑战及未来趋势。无论你是AI研究者、分布式系统工程师,还是对“集体智能”好奇的初学者,都能从本文中找到理解MAS的关键钥匙。

一、背景介绍:为什么需要“集体智能”?

1.1 MAS的兴起:从“单枪匹马”到“团队作战”

在AI发展的早期,我们更关注“单智能体”的能力——比如AlphaGo击败人类棋手,或是 Siri 理解语音指令。但现实世界中的复杂任务,往往需要多个智能体协同完成

  • 仓库里的机器人需要一起搬运大型货物,不能互相碰撞;
  • 自动驾驶车队需要同步变道,避免追尾;
  • 分布式数据库需要在多个节点间保持数据一致,不能出现“数据分裂”。

这就像一个公司要完成一个大项目,单靠一个员工再厉害也不行,必须靠团队合作。而**多代理系统(MAS)就是这样的“智能团队”:由多个自主代理(Agent)**组成,每个代理能独立感知环境、做出决策,但又能通过通信与其他代理交互,最终实现集体目标。

1.2 核心挑战:“共识”与“决策”的两难

如果每个代理都是“自主的”,那么问题来了:

  • 如何让大家达成一致? 比如机器人swarm要搬运货物,有的想走左边,有的想走右边,必须达成一个共同路线,否则会混乱;
  • 如何根据一致意见行动? 即使达成了路线共识,每个机器人该负责搬运哪个部分?谁走前面?谁断后?这需要决策机制来分配任务。

这两个问题,就是MAS的核心挑战:共识算法解决“怎么达成一致”,决策机制解决“怎么行动”。没有共识,团队会分裂;没有决策,共识只是“空话”。

1.3 目标读者:谁需要懂这些?

  • AI研究者:想设计更智能的集体系统(比如机器人swarm、多智能体强化学习);
  • 分布式系统工程师:需要解决分布式数据库、区块链的共识问题;
  • 产品经理/创业者:想利用MAS开发新应用(比如智能物流、自动驾驶车队);
  • 好奇者:想理解“集体智能”的底层逻辑(比如蚂蚁、蜜蜂的群体行为)。

二、核心概念解析:用“蚂蚁搬家”理解MAS的三大要素

为了让复杂概念更易理解,我们用“蚂蚁搬家”这个生活化场景来类比MAS的核心要素:

  • 代理(Agent):每只蚂蚁,能独立感知(用触角闻气味)、决策(选择走哪条路)、行动(搬运食物);
  • 共识(Consensus):蚂蚁通过释放信息素(化学信号)达成“走哪条路最近”的一致意见;
  • 决策(Decision-Making):蚂蚁根据共识,分配任务(有的探路、有的搬运、有的守护)。

2.1 代理:MAS的“细胞”——自主但不任性

代理是MAS的基本单元,具有三个关键特性:

  • 自主性:能独立做出决策(比如蚂蚁自己决定往哪个方向走);
  • 交互性:能通过通信与其他代理交换信息(比如蚂蚁释放信息素);
  • 适应性:能根据环境变化调整行为(比如遇到障碍物时,蚂蚁会换条路)。

比喻:代理就像公司里的员工,有自己的职责(自主性),能和同事沟通(交互性),遇到问题会调整方法(适应性),但最终要为公司的目标服务(集体性)。

2.2 共识:集体行动的“前提”——从“各自为战”到“步调一致”

共识的定义:多个代理在“异步通信”(信息传递有延迟)、“部分故障”(有的代理出错)甚至“恶意攻击”(有的代理故意说谎)的情况下,达成对某个“状态”的一致认可(比如“路线A是最近的”)。

经典问题:拜占庭将军问题
为了说明共识的难度,计算机科学家Leslie Lamport提出了“拜占庭将军问题”:

  • 一群拜占庭将军包围了一座城市,需要决定“进攻”或“撤退”;
  • 将军们通过信使传递消息,但有的信使会被敌人截获(延迟),有的将军是叛徒(故意发送假消息);
  • 如何让忠诚的将军达成一致?

比喻:就像公司开会,有的同事迟到(异步),有的同事说错话(故障),有的同事故意误导(恶意),如何让大家达成正确的决议?

2.3 决策:从“共识”到“行动”的“桥梁”——怎么分配任务?

共识解决了“达成一致意见”的问题,但还需要决策机制解决“如何根据意见行动”的问题。比如蚂蚁达成“路线A最近”的共识后,需要决定:

  • 哪些蚂蚁去探路?
  • 哪些蚂蚁搬运食物?
  • 遇到障碍物时谁来调整路线?

决策机制的类型

  • 集中式决策:有一个“领导代理”(比如蚁后),负责分配所有任务;
  • 分布式决策:没有领导,代理通过协商分配任务(比如蚂蚁通过信息素浓度决定自己的角色);
  • 混合式决策:部分任务由领导决定,部分由代理协商(比如公司里老板定目标,员工协商具体执行方案)。

三、技术原理与实现:共识算法与决策机制的“底层逻辑”

3.1 共识算法:从“投票”到“容错”的技术演进

共识算法的目标是让多个代理在不可靠环境中达成一致,常见的算法可以分为三类:崩溃容错(Crash Fault Tolerance, CFT)拜占庭容错(Byzantine Fault Tolerance, BFT)适用于MAS的自组织共识

3.1.1 崩溃容错:Raft——像“公司选举”一样简单

问题场景:分布式数据库中的节点,有的会突然崩溃(比如服务器宕机),但不会发送假消息(忠诚但可能出错)。
算法思路:Raft通过“ leader 选举”和“日志复制”两个阶段,让所有节点达成一致。

比喻:公司选举CEO

  • ** leader 选举**:员工们投票选CEO(leader),得票最多的人当选;
  • 日志复制:CEO发布命令(比如“今天加班”),员工们确认收到并执行,确保所有人都知道这个命令。

Raft的流程图(Mermaid)

节点A(候选者) 节点B( follower ) 节点C( follower ) 节点A 节点B 节点C 发送请求投票(Term=1, 最后日志索引=0) 发送请求投票(Term=1, 最后日志索引=0) 回复同意(Term=1) 回复同意(Term=1) 发送心跳(Term=1, 日志=[]) 发送心跳(Term=1, 日志=[]) 发送日志条目(Term=1, 命令=“set x=1”) 回复确认(Term=1, 索引=1) 发送日志条目(Term=1, 命令=“set x=1”) 回复确认(Term=1, 索引=1) 发送提交通知(Term=1, 索引=1) 发送提交通知(Term=1, 索引=1) 节点A(候选者) 节点B( follower ) 节点C( follower ) 节点A 节点B 节点C

代码示例:用Python实现简单的Raft节点

import time
from typing import List

class RaftNode:
    def __init__(self, node_id: int, peers: List[int]):
        self.node_id = node_id  # 节点ID
        self.peers = peers      # 其他节点列表
        self.current_term = 0   # 当前任期
        self.voted_for = None   # 本次任期投票给了谁
        self.log = []           # 日志列表
        self.state = "follower" # 状态:follower/ candidate/ leader
        self.leader_id = None   #  leader ID
        self.last_heartbeat = time.time()  # 最后一次收到心跳的时间

    def request_vote(self, term: int, candidate_id: int, last_log_index: int, last_log_term: int) -> bool:
        # 处理请求投票的逻辑:如果任期比当前大,或者任期相同但没投票,就同意
        if term > self.current_term:
            self.current_term = term
            self.voted_for = candidate_id
            return True
        elif term == self.current_term and self.voted_for is None:
            self.voted_for = candidate_id
            return True
        return False

    def append_entries(self, term: int, leader_id: int, prev_log_index: int, prev_log_term: int, entries: List, leader_commit: int) -> bool:
        # 处理日志复制的逻辑:如果任期有效,就保存日志并确认
        if term >= self.current_term:
            self.current_term = term
            self.leader_id = leader_id
            self.last_heartbeat = time.time()
            # 检查前一个日志是否匹配
            if prev_log_index == -1 or (len(self.log) > prev_log_index and self.log[prev_log_index]["term"] == prev_log_term):
                # 添加新日志
                self.log = self.log[:prev_log_index+1] + entries
                # 更新提交索引
                if leader_commit > len(self.log)-1:
                    self.commit_index = len(self.log)-1
                return True
        return False

    def run(self):
        # 主循环:根据状态处理逻辑
        while True:
            if self.state == "follower":
                #  follower 状态:等待心跳,超时则转为候选者
                if time.time() - self.last_heartbeat > 5:
                    self.state = "candidate"
                    self.current_term += 1
                    self.voted_for = self.node_id
                    votes = 1  # 自己投自己
                    # 向其他节点请求投票
                    for peer in self.peers:
                        if self.request_vote(self.current_term, self.node_id, len(self.log)-1, self.log[-1]["term"] if self.log else 0):
                            votes += 1
                    # 如果获得多数票,转为 leader
                    if votes > len(self.peers)/2:
                        self.state = "leader"
                        self.leader_id = self.node_id
                        # 发送心跳
                        for peer in self.peers:
                            self.append_entries(self.current_term, self.node_id, -1, 0, [], -1)
            elif self.state == "leader":
                #  leader 状态:定期发送心跳
                time.sleep(1)
                for peer in self.peers:
                    self.append_entries(self.current_term, self.node_id, len(self.log)-1, self.log[-1]["term"] if self.log else 0, [], self.commit_index)
            time.sleep(0.1)

# 测试:创建三个节点
node1 = RaftNode(1, [2,3])
node2 = RaftNode(2, [1,3])
node3 = RaftNode(3, [1,2])

# 启动节点(实际中需要多线程,这里简化为示例)
node1.run()
node2.run()
node3.run()
3.1.2 拜占庭容错:PBFT——像“三方验证”一样可靠

问题场景:分布式系统中的节点,有的会发送假消息(比如区块链中的恶意节点),需要容忍1/3的恶意节点
算法思路:PBFT通过“预准备(Pre-Prepare)”、“准备(Prepare)”、“提交(Commit)”三个阶段,让忠诚节点达成一致。

比喻:银行转账的三方验证

  • 预准备:你发起转账请求(比如转100元给张三),银行柜员( leader )记录这个请求;
  • 准备:柜员把请求发给其他柜员(副本节点),其他柜员确认请求有效;
  • 提交:所有柜员都确认后,执行转账操作,并通知你成功。

PBFT的流程图(Mermaid)

客户端 节点A( leader ) 节点B(副本) 节点C(副本) 节点A 节点B 节点C 发送请求(操作=转账,金额=100) 发送预准备消息(视图=1,序号=1,请求=...) 发送预准备消息(视图=1,序号=1,请求=...) 发送准备消息(视图=1,序号=1,摘要=...) 发送准备消息(视图=1,序号=1,摘要=...) 发送准备消息(视图=1,序号=1,摘要=...) 发送准备消息(视图=1,序号=1,摘要=...) 发送提交消息(视图=1,序号=1,摘要=...) 发送提交消息(视图=1,序号=1,摘要=...) 回复执行结果(成功) 回复执行结果(成功) 客户端 节点A( leader ) 节点B(副本) 节点C(副本) 节点A 节点B 节点C
3.1.3 自组织共识:ACSA——像“蚂蚁信息素”一样灵活

问题场景:MAS中的代理是动态的(比如机器人swarm中的机器人会加入或离开),需要自组织的共识算法(不需要预先指定 leader )。
算法思路:ACSA(Ant Colony System Algorithm)模仿蚂蚁的信息素机制,代理通过“释放信息素”和“感知信息素浓度”来达成共识。

数学模型:信息素浓度的更新公式为:
τij(t+1)=(1−ρ)τij(t)+∑k=1mΔτijk\tau_{ij}(t+1) = (1-\rho)\tau_{ij}(t) + \sum_{k=1}^m \Delta\tau_{ij}^kτij(t+1)=(1ρ)τij(t)+k=1mΔτijk
其中:

  • τij(t)\tau_{ij}(t)τij(t):t时刻路径i→j的信息素浓度;
  • ρ\rhoρ:信息素挥发系数(0<ρ<1);
  • mmm:代理数量;
  • Δτijk\Delta\tau_{ij}^kΔτijk:第k个代理在路径i→j上释放的信息素量。

比喻:就像蚂蚁走在路上会留下信息素,其他蚂蚁会选择信息素浓度高的路,走的蚂蚁越多,信息素浓度越高,最终所有蚂蚁都会走同一条路。

3.2 决策机制:从“博弈论”到“强化学习”的选择逻辑

决策机制的目标是根据共识结果,分配任务或选择行动,常见的方法有:博弈论模型强化学习协商协议

3.2.1 博弈论:纳什均衡——“我做什么,取决于你做什么”

问题场景:代理之间的决策是相互影响的(比如机器人swarm搬运货物,每个机器人的选择会影响其他机器人的效率)。
核心概念:纳什均衡(Nash Equilibrium)——在一个博弈中,没有代理有动机单方面改变自己的策略,因为改变不会让自己变得更好。

例子:机器人搬运的纳什均衡
假设两个机器人要搬运一个箱子,有两种策略:“抬左边”或“抬右边”。如果两个都抬左边,箱子会翻倒(收益0);如果两个都抬右边,箱子也会翻倒(收益0);如果一个抬左边,一个抬右边,箱子能被搬走(收益10)。那么纳什均衡是(抬左边,抬右边)或(抬右边,抬左边)——每个机器人都没有动机改变自己的策略,因为改变会让收益从10变成0。

数学模型:对于n个代理的博弈,策略组合s∗=(s1∗,s2∗,...,sn∗)s^* = (s_1^*, s_2^*, ..., s_n^*)s=(s1,s2,...,sn)是纳什均衡,当且仅当对于每个代理i,有:
ui(si∗,s−i∗)≥ui(si,s−i∗)u_i(s_i^*, s_{-i}^*) \geq u_i(s_i, s_{-i}^*)ui(si,si)ui(si,si)
其中:

  • si∗s_i^*si:代理i的最优策略;
  • s−i∗s_{-i}^*si:其他代理的最优策略;
  • uiu_iui:代理i的收益函数。
3.2.2 强化学习:多智能体强化学习(MARL)——“从试错中学习最优决策”

问题场景:MAS的环境是动态的(比如自动驾驶车队遇到突发情况),需要自适应的决策机制。
算法思路:MARL让每个代理通过与环境和其他代理交互,学习“什么行动能获得最高收益”。常见的算法有:独立Q-learning(每个代理独立学习)、集中式训练分布式执行(CTDE)(训练时用集中式信息,执行时用分布式决策)。

代码示例:用PyTorch实现简单的MARL(独立Q-learning)

import torch
import torch.nn as nn
import torch.optim as optim
import numpy as np

class QNetwork(nn.Module):
    def __init__(self, state_size, action_size):
        super(QNetwork, self).__init__()
        self.fc1 = nn.Linear(state_size, 64)
        self.fc2 = nn.Linear(64, 64)
        self.fc3 = nn.Linear(64, action_size)

    def forward(self, state):
        x = torch.relu(self.fc1(state))
        x = torch.relu(self.fc2(x))
        return self.fc3(x)

class Agent:
    def __init__(self, state_size, action_size, agent_id):
        self.agent_id = agent_id
        self.state_size = state_size
        self.action_size = action_size
        self.qnetwork_local = QNetwork(state_size, action_size)
        self.qnetwork_target = QNetwork(state_size, action_size)
        self.optimizer = optim.Adam(self.qnetwork_local.parameters(), lr=0.001)
        self.memory = []  # 经验回放缓存
        self.gamma = 0.95  # 折扣因子
        self.tau = 0.01   # 目标网络软更新系数

    def step(self, state, action, reward, next_state, done):
        # 保存经验到缓存
        self.memory.append((state, action, reward, next_state, done))
        # 每步更新目标网络
        self.soft_update(self.qnetwork_local, self.qnetwork_target, self.tau)

    def act(self, state, eps=0.1):
        # ε- greedy策略选择行动
        if np.random.uniform(0, 1) > eps:
            state = torch.FloatTensor(state).unsqueeze(0)
            self.qnetwork_local.eval()
            with torch.no_grad():
                action_values = self.qnetwork_local(state)
            self.qnetwork_local.train()
            return np.argmax(action_values.numpy())
        else:
            return np.random.choice(self.action_size)

    def learn(self, batch_size=64):
        # 从缓存中采样经验
        if len(self.memory) < batch_size:
            return
        samples = np.random.choice(len(self.memory), batch_size, replace=False)
        states, actions, rewards, next_states, dones = zip(*[self.memory[i] for i in samples])
        states = torch.FloatTensor(states)
        actions = torch.LongTensor(actions).unsqueeze(1)
        rewards = torch.FloatTensor(rewards).unsqueeze(1)
        next_states = torch.FloatTensor(next_states)
        dones = torch.FloatTensor(dones).unsqueeze(1)

        # 计算目标Q值:r + γ * max(Q(next_state))
        target_q = self.qnetwork_target(next_states).max(1)[0].unsqueeze(1)
        target_q = rewards + (1 - dones) * self.gamma * target_q

        # 计算当前Q值:Q(state, action)
        current_q = self.qnetwork_local(states).gather(1, actions)

        # 损失函数:MSE
        loss = nn.MSELoss()(current_q, target_q)
        self.optimizer.zero_grad()
        loss.backward()
        self.optimizer.step()

    def soft_update(self, local_model, target_model, tau):
        # 软更新目标网络:θ_target = τ*θ_local + (1-τ)*θ_target
        for target_param, local_param in zip(target_model.parameters(), local_model.parameters()):
            target_param.data.copy_(tau*local_param.data + (1-tau)*target_param.data)

# 测试:创建两个代理,状态是位置,行动是“左”或“右”
state_size = 2  # 代理1的位置,代理2的位置
action_size = 2 # 0=左,1=右
agent1 = Agent(state_size, action_size, 1)
agent2 = Agent(state_size, action_size, 2)

# 模拟交互(简化为示例)
for episode in range(100):
    state = np.random.rand(state_size)  # 初始状态
    done = False
    while not done:
        # 两个代理选择行动
        action1 = agent1.act(state)
        action2 = agent2.act(state)
        # 环境反馈奖励(比如两个代理都选“右”,奖励10)
        if action1 == 1 and action2 == 1:
            reward = 10
        else:
            reward = -1
        # 下一个状态(简化为随机)
        next_state = np.random.rand(state_size)
        # 代理学习
        agent1.step(state, action1, reward, next_state, done)
        agent2.step(state, action2, reward, next_state, done)
        agent1.learn()
        agent2.learn()
        # 更新状态
        state = next_state
        # 结束条件(简化为固定步数)
        if episode % 10 == 0:
            done = True
3.2.3 协商协议:Contract Net——“像招标一样分配任务”

问题场景:MAS中的任务需要动态分配(比如仓库机器人需要处理突然到来的订单)。
算法思路:Contract Net协议模仿“招标-投标-中标”过程:

  1. 任务公告:需要完成任务的代理(招标方)向其他代理发送任务描述;
  2. 投标:有能力完成任务的代理(投标方)发送投标信息(比如完成时间、成本);
  3. 中标:招标方选择最合适的投标方,分配任务。

比喻:就像公司要做一个项目,项目经理(招标方)发布项目需求,各个团队(投标方)提交方案,项目经理选择最好的方案,让对应的团队执行。

四、实际应用:从“机器人swarm”到“区块链”的落地案例

4.1 机器人swarm:协同搬运的“蚂蚁军团”

场景:亚马逊仓库中的Kiva机器人,需要协同搬运货架。
共识算法:使用自组织共识(ACSA),机器人通过无线通信释放“虚拟信息素”,达成“最优路径”的共识。
决策机制:使用Contract Net协议,仓库管理系统(招标方)发布搬运任务,机器人(投标方)根据自己的位置和电量投标,系统选择最合适的机器人执行任务。
效果:Kiva机器人让亚马逊仓库的效率提升了3倍,错误率降低了90%。

4.2 区块链:比特币的“去中心化共识”

场景:比特币网络中的节点,需要确认交易的有效性(比如A给B转了10个比特币)。
共识算法:使用工作量证明(PoW),节点通过解决复杂的数学问题(挖矿)竞争** leader 地位**,赢得 leader 地位的节点可以打包交易并广播给其他节点。
决策机制:使用分布式决策,所有节点都要验证交易的有效性(比如A有没有足够的比特币),只有超过51%的节点确认,交易才会被记录在区块链上。
效果:比特币网络在没有中心控制的情况下,运行了15年,处理了超过10亿笔交易,从未出现过重大安全问题。

4.3 自动驾驶车队:同步变道的“智能队列”

场景:自动驾驶车队在高速公路上行驶,需要同步变道规避障碍物。
共识算法:使用Raft,车队中的“ lead 车”( leader )负责感知障碍物,向其他车发送变道请求,其他车确认后达成共识。
决策机制:使用多智能体强化学习(MARL),每个车通过学习知道自己在变道时应该保持的距离和速度,避免追尾。
效果:自动驾驶车队的变道效率比人类司机高20%,事故率降低了50%。

4.4 常见问题及解决方案

问题 解决方案
恶意代理发送假消息 使用拜占庭容错算法(比如PBFT),容忍1/3的恶意节点
动态环境下的共识失效 使用自组织共识算法(比如ACSA),代理通过信息素调整策略
决策延迟高 使用集中式决策(比如领导代理分配任务),减少协商时间
任务分配不公平 使用博弈论模型(比如纳什均衡),确保每个代理的收益合理

五、未来展望:从“集体智能”到“超级智能”的进化方向

5.1 技术发展趋势

  • 大语言模型(LLM)与MAS的结合:用LLM增强代理的语言理解和决策能力,比如每个代理都是一个“小ChatGPT”,能更好地协商和达成共识;
  • 量子共识算法:利用量子计算的并行性,提高共识算法的效率(比如解决PoW的高能耗问题);
  • 跨域MAS:不同系统的代理(比如机器人、无人机、手机)协同工作,需要设计兼容不同协议的共识和决策机制;
  • 伦理与安全:MAS的决策可能涉及伦理问题(比如自动驾驶车队在事故中选择保护行人还是乘客),需要设计“伦理共识”算法。

5.2 潜在挑战

  • ** scalability **:当代理数量增加到100万甚至1亿时,共识算法的效率会急剧下降(比如Raft的 leader 选举时间会变长);
  • 不确定性:MAS的环境是不确定的(比如机器人遇到未知障碍物),决策机制需要处理“未知的未知”;
  • 责任归属:当MAS出现错误时(比如自动驾驶车队发生事故),责任应该由谁承担?是代理的设计者?还是用户?

5.3 行业影响

  • 智能物流:机器人swarm会取代传统的仓库工人,实现“无人化”搬运;
  • 智慧城市:MAS会管理交通信号灯、垃圾车、路灯等设施,提高城市的运行效率;
  • 医疗健康:MAS会协同医生、护士、机器人进行手术,提高手术的准确性和安全性。

六、总结:集体智能的“密码”是什么?

多代理系统的核心是**“集体大于个体之和”**,而共识算法和决策机制是实现这一目标的“密码”:

  • 共识算法解决了“如何让自主代理达成一致”的问题,就像蚂蚁通过信息素找到最近的路;
  • 决策机制解决了“如何根据一致意见行动”的问题,就像蚂蚁根据共识分配搬运任务。

从Raft到PBFT,从博弈论到强化学习,这些技术的发展让MAS从“理论”走向“实践”,从“蚂蚁搬家”走向“机器人swarm”、“区块链”、“自动驾驶车队”。未来,随着LLM、量子计算等技术的融入,MAS将进化为“超级智能”,改变我们的生活方式。

思考问题:你准备好迎接集体智能了吗?

  1. 如何设计适应动态环境的共识算法?(比如机器人swarm中的机器人会突然加入或离开)
  2. 多代理决策中的伦理问题如何解决?(比如自动驾驶车队在事故中选择保护行人还是乘客)
  3. 当代理数量增加到1亿时,共识算法的** scalability **如何保证?

参考资源

  1. 《Multi-Agent Systems: A Modern Approach to Distributed Artificial Intelligence》(MAS的经典教材);
  2. 《In Search of an Understandable Consensus Algorithm》(Raft算法的论文);
  3. 《Practical Byzantine Fault Tolerance》(PBFT算法的论文);
  4. 《Ant Colony Optimization》(ACSA算法的论文);
  5. 《Multi-Agent Reinforcement Learning: Foundations and Modern Approaches》(MARL的教材)。

作者:AI技术专家与教育者
日期:2024年XX月XX日
版权:本文采用CC BY-SA 4.0协议,欢迎转载,但请注明出处。

Logo

更多推荐