- 博客(75)
- 收藏
- 关注
翻译 [译文]从A*到MARL(Muli Agent Reinforce Learning)第四章节
我们抛弃了另一个重要假设,即认识到传感器是不完美的。我们用部分可观测MDP框架来正式地描述它,并且发现一个简单的MDP的拓展是不满足马尔科夫特性的。因此,我们引入可信状态MDP。然后,我们定义此框架下的最优化策略,并且知道如何在连续的状态空间MDP下使用价值迭代算法。之后,如前所做,我们将POMDP泛化至多智能体并聚焦于非中心化的执行情况。我们注意到,最优化解DEC-POMDP是困难的,并且寻找其近似解。下面,我们会尝试抛弃另一个假设——我们如何在一个并不了解的世界里规划?
2024-11-04 20:36:47 2
翻译 [译文]从A*到MARL(Muli Agent Reinforce Learning)第三章节
本文中对不确定性的预见是通向MARL的重要标志。首先,我们定义如何用MDP来表示规划问题的不确定性。然后,我们知道如何寻找最优化策略。最后,我们了解了将MDP泛化到多智能体的框架。这些框架区别于不同的假设,如中心体的存在以及智能体间的独立性。通常来说,一个对非中心化的多智能体MDP的最优解是很难找到的。最优我们简单地讨论了如何找到近似最优解。之后,我们会抛弃另一个重要的假设,可观测性,并介绍部分可观测MDP(POMDP)的框架。与我们在这章中见到的类似,我们将会见到这种框架泛化到非中心化的多智能体情况。
2024-11-03 22:24:34 4
翻译 [译文]从A*到MARL(Muli Agent Reinforce Learning)第二章节
PDDL是一种我们用于定义初态、末态以及我们的智能体能够进行的操作的语言。从本质上来说,一个PDDL问题由条件、操作、末态、末态定义而成。一组条件描述一种状态,操作被他们引起的效应和他们生效的前置条件定义。一个著名的规划的例子是航空货物规划问题。我们来关注一个由两个城市(TLV和NYC),两架飞机(P1,P2)以及两个不同的我们想要在城市间运输的货物(C1,C2)组成的简单问题。在初态,我们有C1和P1在TLV,C2和P2在NYC。我们的目标是有C1在NYC和C2在TLV。现在我们来定义操作。
2024-11-03 22:23:33 3
翻译 [译文]从A*到MARL(Muli Agent Reinforce Learning)第一章节
对强化学习的研究,以及多智能体强化学习算法在上个十年中得到快速发展。有人可能认为这是由于深度学习的兴起,并且其架构在强化学习任务中得到应用。虽然这在某种程度上是正确的,但是强化学习的基石是,在人工智能算法中的以学习系统呈现的规划问题(已经发展了超过五十年)。但是,强化学习和规划算法之间的联系可能并不紧密,因为对于从业者来说,前者现在和深度学习联系更紧密。这一系列文章想要从经典的,有严格假设的(确定的,集中的,单体的)路径规划算法开始,逐渐抛弃假设,直到最终的MARL问题。
2024-11-03 22:22:35 3
原创 洛谷 P3406 海底高铁
使用前缀和记录每段铁路经过的次数,因为n个站点只有n-1段铁路,所以尾记得-1。注意到,经过一段铁路与从小到大或从大到小无关,所以用经典前缀和就可以了。
2023-08-31 21:31:46 188
原创 堆优化的dijkstra算法
dijkstradijkstradijkstra算法简述:定义dis[i]dis[i]dis[i]表示节点iii到起点的距离dis[i]dis[i]dis[i]在初始时,除起点外,全部为极大值每一次寻找dis[i]mindis[i]_{min}dis[i]min,并用其更新与之相连的每个节点。伪代码:for(每个顶点)找出dis最小的顶点x(没有访问过);for(每个与x相连的顶点y) dis[y]=min(dis[y],dis[x]+x与y相连边的边权)}考虑优化寻找dismindi
2021-07-27 23:33:20 444
原创 浅谈链式前向星
写在最前:笔者其实对链式前向星的理解并不是很深刻,老是忘记怎么写,每次都要看模板。而最近的一次,模板出现了问题。于是,记录下正确的写法。所用如下:数组 head[i]head[i]head[i] 大小为点的数量 head[i]head[i]head[i]:最后一条起点为i的边的序号变量 e_cnte\_cnte_cnt 最终大小(加边操作全部结束后)为边的数量 e_cnte\_cnte_cnt:维护每条边的序号结构体 e[i]{to,next,weight}e[i] \left\{to,nex
2021-01-24 23:34:22 228
原创 洛谷 P3958 奶酪
读题,不难想到深搜。然后加上一个 vis 数组记录这个地方有没有来过,如果来过肯定就不再来了同时,你还需要注意“坐标的 绝对值不超过 1,000,000,000”,记得算两点距离的时候要改成 long long 类型#include<bits/stdc++.h>#define reg register#define ll long longusing namespace std;int t;struct node{ int x; int y; int z;}che[100
2020-12-04 19:58:37 177
原创 OI中部分常用latex语法
表示多个式子为同一部分abc{abc}abc{abc}换行aba\\baba\\b分数ab\frac{a}{b}ba\frac{a}{b}点乘a⋅ba \cdot ba⋅ba \cdot b叉乘a×ba \times ba×ba \times b点除a÷ba \div ba÷ba \div b西格玛(sigma)∑abc\sum\limits_{a}^{b}{c}a∑bc\sum\limits_{a}^{b}{c}∑abc\sum_{a}^{b}{.
2020-11-27 21:45:06 268 1
原创 求最大值最小与最小值最大的二分模板
①当二分区间为[l,mid]与 [mid+1,r]时:while(l<r){ int mid=(l+r)/2; if(check(mid)) { r=mid; } else { l=mid+1; }}最大值最小化②当二分区间为[l,mid-1] 与[mid,r]时:while(l<r){ int mid=(l+r+1)/2; if(check(mid)) {
2020-09-13 19:52:45 333 1
原创 回首我的初中生活·机器人
约是五年级,小学里有了机器人社团,结果就几个人报名,除了我还都只是三四年级的学弟(贲姓同学,后来第一次比赛后就因为成绩退出了,王朗迪(后来也曾见过会提及),奚梓原,杨利)。当时是参加的 ArduinoArduinoArduino,南通地方的比赛,结果挺惨的,如果可能,将来会有关于小学的回忆录,到时候在详细写写,后来也搞过中鸣,但时间不长,五年级便结束了;而到了六年级,以为课业繁重,便没有再搞机器人,结果证明我错了,想来也挺后悔的。到了初中,因为一些原因,所以能够到海陵的机器人社团参与活动。而紫石的同学们的
2020-08-30 15:36:44 442
原创 洛谷 P1967 货车运输
前置知识:生成树,并查集,倍增求LCA化简题意:求图上两点之间路径上边权最小的边(由于最终生成的是树,所以路径唯一)。注意两点可能是不连通的。大致:先用最大生成树重新建边,然后用并查集判断一下两点是否在同一个联通块,之后用倍增在求LCA的时候维护边权的最小值最大生成树:由于要找边权最小的边,所以尽量在生成树的时候选大边(sort排序改一下就行了)并查集:生成树使用克鲁斯卡尔算法,因为从数据可以得出是稀疏图,不建议使用皮姆算法其实是我不会#include<bits/stdc++.h>u
2020-08-30 14:49:27 160
原创 浅记我的高中生活(逐步更新)
时间戳:2020/8/15逐步更新(如果有时间的话是,频率近似每周,不行的话就得高考完了,因为住宿和学习任务繁重的原因)军训的经过。(此部分在学校里写过大致的总结(由于赶时间,有些地方不详细,有空打出来))宿舍的同学们。(tql)校本培训的经过。(讲座,跑操)我对于自己现状的看法(我真的认为我水平很低,从各方面来看也确实如此,但其余同学都不承认(可我觉得所有人明明都比我优秀))...
2020-08-15 14:15:19 316
原创 洛谷 P1234 小A的口头禅
首先,由样例得出,斜着的 hehehehehehe 是不合法的。那么,就有上下左右四种情况,逐一特判即可(注意要判断是否越界)#include<bits/stdc++.h>using namespace std;int n,m,ans;char a[1007][1007];void judr(int i,int j){ if(j+3<=m) if(a[i][j]=='h'&&a[i][j+1]=='e'&&a[i][j+2]=='h'&
2020-07-25 12:39:53 211
原创 洛谷 P3884 二叉树问题
题意中的两点距离需要稍微思考一下,很容易想到 lcalcalca,然后注意一下本题中距离的定义;深度,跑 lcalcalca所需要的dfs已经跑过了每个点的深度;宽度,一开始想用统计子树的方法,然后发现递归可能不太好写 我写不出来,突然发现直接桶排一下就行了,而数据也非常适合桶排。数据较小,所以 lcalcalca中的 iii 其实开到8就行,个人写的9#include<bits/stdc++.h>using namespace std;int n;int dep_max,wid_ma
2020-07-24 22:37:28 185
原创 openjudge 7610 出现次数超过一半的数
比较简单。一开始想用set+vector,然后发现实现可能比较困难,于是用了桶排。看到一个用sort排序然后看次数的,有一个点没过,没看出来问题。代码会贴在最下方,读者可以提出问题所在。下面先是自己的代码#include<bits/stdc++.h>using namespace std;int n;int t[200];bool flag;int main(){ cin>>n; for(int i=1;i<=n;++i){ int x;cin>&
2020-07-23 22:27:27 281
原创 洛谷 P5461 赦免战俘 题解
想起了CSP-J2019完善程序的第一题,都是一个矩形分成四个矩形,可以借鉴下思路:递归。设置函数,记录此时矩形的边长是2的第几次幂和左上角的坐标。每次都把左上角的部分赋值,然后继续搞左上角,左下角,右上角,右下角。提前处理一下2的若干次幂的值,这样大大节省了调用pow函数的时间。#include<bits/stdc++.h>using namespace std;int a[1050][1050];//记得要比2^10大,否则REint b[17]={1,2,4,8,16,32,6
2020-07-20 16:53:55 390
原创 回首我的初中生活·初一 (争取今年写完)
初一从很早起,就对紫石十分熟悉了——家就在学校后。记得那还是在上幼儿园时,每日早晨总是听着7:25的下课铃起床,吃早餐。往往的,还能够看见宿舍楼道里穿行的学生,总是形色匆匆;也曾看见过他们胸卡,想起来颜色似乎一直在变,自己的初二胸卡颜色与当今初二胸卡颜色也是不同的。那个六年级的暑假,早已淡忘了,但初中入学的情景却还历历在目。走入教室,那扑面而来的,经历过一夏的闷热而具有的发霉味,让我在三年后的今天还能感受到。过程也还算顺利,题目并不十分难,中午还与其他几名原先认识的同学一起吃了饭。吃饭时,突然意识到数
2020-07-17 03:37:33 248 1
原创 洛谷 P5738 歌唱比赛
按照题意模拟即可。没有必要开数组和结构体之类,直接用中间变量替代就行#include<bits/stdc++.h>using namespace std;int n,m;double ans,sum,maxn,minn;//虽然题目没说,但个人认为double保险int main(){ cin>>n>>m; for(int i=1;i<=n;++i){ sum=maxn=0,minn=0x3f3f3f3f; //一定要记得初始化!
2020-07-17 02:59:08 1000
原创 回首我的初中生活·前言
前言与其说是纪念,倒不如说是忘却罢了。想起小学,大部分记忆似乎确实是早已随风逝去了;再看初中,倘若不用这种方式记录下来,也终会有这样的一天。本文写作的目的,也并非为了博君一视,更多是为了让将来的我,在回忆初中时能够有话可说。...
2020-07-15 21:01:27 212
原创 寒假集训 P1161 飞越原野
JSOI2019冬令营,这题只会输出impossible骗10分,如今也算圆了当时的梦吧读题发现:宽搜。因为要求最短时间,这和宽搜的长处很像,而且又是一个类似走迷宫的题。标记当前状态:横坐标,纵坐标,目前已用的时间,余下的能量。宽搜一定要记得判重! 开一个三维数组,定义为每一坐标(横加纵)和余下能量,如果已经出现过这种状态,那么就舍去。Q:为什么不需要记录时间?A:因为能量不同,最后的总时...
2020-03-01 11:22:32 369
原创 洛谷 P2671 求和
想要OI学得好,数学肯定不能少看来我是永远也学不好了依照题意,模拟。三重循环枚举 x,y,z,复杂度约为 O(n^3)代码略.不难发现,其实三元组与中间的 y 并没有关系。所以,我们只需枚举 x 与 z 即可,复杂度约为 O(n^2) 。附代码:(40分)#include<iostream>using namespace std;int n,m;int ans...
2020-02-25 22:07:59 244
原创 洛谷 P1323 删数问题
其实,这是由两条题目凑在一起,拼接而成的一条题目。而这两题,在JS夏令营冬令营,NT国庆冲刺营中都有出现。分别是丑数(队列部分的题目)和删数问题(没错,名字一模一样)(贪心部分题目)后一题可参考我写的题解。把本题拆分成两部分。首先,把这些元素全都找出来并拼接在一起,然后,逐渐删去。找元素由于题中说是“最小的k个元素”“从小到大”,所以是依次添加元素,而每次都 O(n) 去找目前最小的...
2020-02-16 22:38:04 496
原创 洛谷 P1078 文化之旅
深搜,剪枝。个人认为此题与棋盘其实非常相似用一个数组记录到达某个国家的最小距离(初值无穷大),就可以把大于等于该距离的剪枝掉(注意等于也必须减去,否则极有可能玄学错误)#include<bits/stdc++.h>using namespace std;int n,k,m,s,t,ans=0x3f3f3f3f;int cou[107],cul[107][107],dis[10...
2020-02-11 20:02:47 166
原创 洛谷 P1019 单词接龙 题解
肺炎时节家家闭,提交OJ处处WA到处都是坑以下部分“前者”代指目前的龙,“后者”代指现在正在判断的单词重叠的部分越小越好,这样接的龙才长(就是贪心,一开始贪反了。。。)“相邻的两部分不能存在包含关系”其实在一些情况下是可以的,比如两者相同且首尾字母相同时:tact->tact,或者是前者的最后一字母和后者的第一个字母相同时:superbus->super记得同一个...
2020-02-05 23:27:00 247
原创 洛谷 P1346 电车
最重要的事情是读题!切换开关的状态后,它会自动复原我也不知道这是什么鬼开关把每个节点看作是点,轨道看作是边。转换一次开关状态看作边权为1。由于题中n的范围是100,所以可以用最暴力好写的Floyd算法#include<bits/stdc++.h>using namespace std;int n,s,e;//end是保留字int d[107][107];//存图int m...
2020-01-23 18:20:29 131
原创 CSP-J 2019 游记
成功爆零(真的)从县政府门前出发。一路驱车,在服务站还遇到了其他地区的同学(具体哪个学校不记得了)。有个大爷竟然认为我是去旅游的。。。到了南航,到(纪念碑?)去让所有人拍了张照片,然后直奔食堂。不得不说南航是真的大。食堂差评那么多人来吃饭(都是CSP的啦),竟然只有一个地方收费。。。然后等了大约半小时才吃上饭。话说菜还是相当不错的,然而最后没有全吃下去。。。然后就去比赛了到了门口发现草稿...
2020-01-22 17:28:28 306 2
原创 洛谷 P1926 【小书童——刷题大军】
强烈要求注明数据范围!否则洛谷将会臭名昭著(逃01背包求出最短要多少时间及格,然后贪心给题目排序,从时间少的开始做起#include<bits/stdc++.h>using namespace std;int f[157],a[17],b[17];//最大数据给出的时间是150//所以原来f开107本地过了,然而洛谷IDE挂了,并不知道为什么//f存每个时间内得到的最大分数...
2019-11-11 21:12:06 1089
原创 洛谷 P1803 【凌乱的yyy / 线段覆盖】
话说个人觉得前面的几篇并不是很好,其实没有那么难,代码也没有那么长很久以前就看到了,但貌似一直认为自己的算法是错误的,结果交上去发现是正解首先按照时间排序(贪心):结束时间早(尽可能不影响后面的比赛)的在前,若结束时间相同,则开始时间晚(尽可能不影响前面的比赛)的在前。(如果两者的判断顺序反了,就把最后一场比赛放到前面来了)由于n<=1000000,所以sort一下即可把目前的结束时...
2019-11-03 20:15:18 264
原创 洛谷 P2672 【推销员】
如果当前点在最大距离点左边,只加上推销疲劳值如果当前点在最大距离点右边,还要在加上两倍距离差,并更新最大距离点首先很容易想到一个贪心:找在最大距离左边最优的点与右边最优的点进行比较(写成程序就是两个if),取最优。并且还要判断该点没有去过。最后如果取了右边的点要更新最大距离点。于是有了这份程序:#include<bits/stdc++.h>using name...
2019-11-01 21:24:11 206
原创 洛谷 P2118 【比例简化】
先看题面,发现很不可做。这比例还得是范围内,还要尽量准确,这怎么找?然后看了一眼数据范围,发现很可做由于l<=100,直接双重循环枚举a’和b’就行了#include<bits/stdc++.h>using namespace std;double minn=0x3f3f3f3f;//存当前能取到的最小值int mina,minb;//a'和b'int a,b,l;...
2019-10-31 22:31:29 458
原创 OpenJudge 9265 取数游戏
唉。。。还是看了一下讨论区才猛然醒悟。取任意多个数,那么包括取0个数!!!推导过程:手算设f[i]表示到当前这个数为止,所有的种类一开始以为是f[i]+=fj然后发现错了,于是毅然手算推出了:f[1]=1,f[2]=2,f[3]=4.f[4]=7,f[5]=12,f[6]=20,f[7]=33得出:f[i]=f[i-1]+f[i-2]+1,然后发现与样例对不上了,交了一遍->0...
2019-10-29 21:40:36 458
原创 OpenJudge 6045 开餐馆
首先一看是动态规划毕竟是动态规划类里的题目然后看到位置逐渐递增,利润不统一,两个餐馆间有距离限制,就开始考虑应该是最长上升子序列的变种(就是写法差不多)设f[i]表示当前从起点到当前这家餐馆为止所能获得的最大利润那么最大利润肯定要从前面每一个餐馆去看,能不能开这家餐馆(如果都不能那么f[i]自然为本省的利润了)。然后考虑,现在在当前餐馆开业能获得的最大利润与在前面某个餐馆开业后再在此餐馆开...
2019-10-28 22:36:08 265
原创 洛谷 P1160 【队列安排】
很久以前看到,今天才做。苦于没有满足该性质的数据结构,于是——手工模拟(看了别人的题解,原来这算链表?)#include<bits/stdc++.h>using namespace std;int n,m;//由题struct node{ int r;//左边 int l;//右边}a[100007];void dcout(int k){//不断找右边的人 if(!a...
2019-10-27 20:12:39 312
原创 洛谷 P3956 【棋盘】
JS省里冬令营夏令营讲深搜都讲到了今天上午测试的题,15分,因为剪枝没剪干净,少了个等于号,于是本来能拿到的分也没拿到,唉主要思想dfs+剪枝#include<bits/stdc++.h>using namespace std;int m,n;//依照题目int a[107][107];//存颜色int vis[107][107];//存来到这个点最少花的金币int d...
2019-10-27 16:01:59 246
原创 洛谷 【[USACO1.1]贪婪的送礼者Greedy Gift Givers】
STL-MAP因为要存每个人的名字和钱,所以只想到了mapmap可以简单理解为将某两个量绑定(数组也行,但只能是数字与其他类型绑定),两个量任意类型都行;赋值可以直接用下标(自动申请空间)或插入(若已有绑定关系,则插入失败)#include<bits/stdc++.h>using namespace std;int np;//尽量按题目里的说法string a[17];//...
2019-10-26 13:13:35 172
原创 洛谷 P5534 【【XR-3】等差数列】
题目给你的是整数!整数!整数!直接long long,别给我整什么long double不然输出就很玄学小高斯告诉我们了等差数列求和公式:(首项+末项)X项数/2末项=首项+公差X(项数-1)说实话我都快忘了打一次写还写错了该去四年级进修下#include<iostream>using namespace std;long long x,y,z;//首项,第二项,末项...
2019-10-07 21:20:48 315
原创 洛谷 P1359 【租用游艇】
果然是道看你语文如何的题矩阵其实是这样的:a[i][j]表示i到j的路程,其中1<=i<=n,i<j<=n因为题目说“在下游的任何一个游艇出租站归还游艇”所以没有回头路……然后就是Floyd了#include<iostream>#include<string.h>using namespace std;int n;int a[207]...
2019-10-05 14:47:06 258
原创 洛谷 P1203 【[USACO1.1]坏掉的项链Broken Necklace】
真是不容易啊。。。坑点巨多算法:把字符串赋双,然后从每一个起点向后搜,然后再从每一个终点向前搜,每次与提前保存好的judge比对看是否是同一颜色#include<bits/stdc++.h>using namespace std;int n;string s;int size;int maxn;int main(){ cin>>n; cin>&g...
2019-10-02 09:51:58 166
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人