题目
序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。
请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。
提示: 输入输出格式与 LeetCode 目前使用的方式一致,详情请参阅 LeetCode 序列化二叉树的格式。你并非必须采取这种方式,你也可以采用其他的方法解决这个问题。
题目
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
DeepMAG: Deep reinforcement learning with multi-agent graphs for flexible job shop scheduling
Abstract
一般的柔性车间调度执行基于两个决策步骤:任务次序(比如在一个机器上任务的执行顺序)以及任务路由(比如一个任务到一个机器的路径)。大多数现有的研究利用DRL或者MARL在大的搜索空间进行调度。但是这些研究有两个主要的限制:在DRL和MARL之间没有进行结合,独立的智能体之间没有合作。DeepMAG有两个关键贡献:1. DRL和MARL之间的结合。DeepMAG 通过将不同的智能体与每台机器和作业相关联,将 DRL 与 MARL 集成。每个智能体都利用 DRL 来找到有关作业排序和路由的最佳操作。在作业关联智能体选择最佳机器后,该作业成为机器进行下一个操作的作业候选者,而机器关联智能体从其作业候选集中选择下一个作业进行处理。2. 合作智能体。基于机器和作业之间的操作关系构建多智能体图。一个智能体与其相邻的智能体合作采取一个合作行动。最后,我们进行实验来评估 DeepMAG 的性能,实验结果表明它优于最先进的技术。