自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 为什么Next-Key Lock可以解决幻读问题

幻读是指一个事务在前后两次查询同意范围的时候,后一次查询看到了前一次查询没有看到的行。并且在默认的可重复读隔离级别下,普通读查询的是快照读,是不会看到别的事务插入数据的,幻读只会在当前读的情况下才会出现。(select * from table where d=5 for update这种情况,也就是用于更新读才会是当前读。)Next-Key Lock能够解决幻读问题的关键在于MySQL的数据存储结构是B+树,并且Next-Key Lock只有对于建立索引的列才能够起作用,在没有建立索引的列为了解决幻读使

2020-12-05 15:14:32 2216 1

原创 最佳买卖股票时机含冷冻期

309. 最佳买卖股票时机含冷冻期给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。​设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3 解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]这道题可以用dp的方法求解。因为含有冷冻期,

2020-12-01 22:49:40 179

原创 wait() notify() notifyall()如何实现的

在看Thread.join()的源码时,发现实现是在一个等待通知的经典范式下实现的join方法。在等待过程中使用的wait(0),忽然想到wait()是如何实现的,为什么wait方法需要先获得锁,再使用锁调用wait方法。这其实也是一种通信机制,通过线程之间共享内存的通信机制。每个对象都会有一个等待集合和阻塞集合,而存储的就是采用此对象作为锁调用wait()方法的线程对象和因竞争锁而阻塞的线程对象。那么回到这个问题,先获得锁再用锁调用wait()方法那么当前线程对象也就存储在了wait集合里。那么,在调用

2020-11-29 10:07:52 219

原创 Java序列化 static和transient

在学习Java序列化的过程中,对static和transient这两个关键字进行了测试,发现了这两个关键字很有意思的特点。首先被static和transient这两个关键字修饰的成员变量,在通过集成Serializable接口实现可序列化的过程中都不会被序列化,而是存储对应成员变量的默认值(如果在类中进行了初始化,则存储对应的初始化值)。但在测试的过程中发现了两个有意思的现象,在这里进行记录。在实例化对象后,修改静态变量的值后再序列化,反序列化后得到的值为修改后的值而不是静态变量的初始值(这与不序列

2020-11-04 16:57:36 651

原创 Java序列化——Externalizable接口

Externalizable接口介绍在Java中,可以通过实现Serializable或Externalizable接口来实现类的序列化。采用类实现Serializable接口的序列化很简单,Java自动会将非transient非static修饰属性序列化到指定文件中去。使用Externalizable可以完成部分属性的序列化。Externalizable继承自Serializable,使用Externalizable接口需要实现writeExternal以及readExternal方法在writeExt

2020-11-04 12:08:35 301

原创 简述构造代码块、静态代码块

对于一个类而言,按照如下顺序执行:执行静态代码块执行构造代码块执行构造函数对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是:静态变量静态初始化块变量初始化块构造器ps.构造代码块只有在构造函数被调用时执行,并且每次调用都会执行静态代码块在主函数前执行,且只执行一次...

2020-10-16 10:46:16 102

原创 简述Java访问权限控制

JAVA访问权限包括private, default, protected, public。这四个访问权限的由最严格到最不严格。private只能类内部访问default除了类内部,同一个包内也可以访问protected除了类内部,同一个包内,子类也可以访问public都可以访问...

2020-10-16 10:33:18 212

原创 反向传播中各个参数的变换和传递过程

今天在看DQN的过程中,对其反向传播的过程有些疑问,于是又复习了一边反向传播。在复习的过程中有了新的理解,在此做一下记录。反向传播中各层参数的梯度是batch中各个样本对于各个参数的求导的和,这是通过矩阵的乘法实现的。即对batch求和获得与参数维度相同的导数反向传播过程中对于上游层输出的导数是与之相连的各个下游节点传回的导数与相应权重的加权求和得到的。即对与每个节点连接的参数求和得到(batch, n_features)维度的导数...

2020-09-27 18:13:17 421

原创 gym自定义环境——小车向随机目标位置移动

在gym已有库的基础上,通过阅读和修改源码,写了一个自定义环境,下面对这个环境的主要部分进行介绍,以供大佬们参考。gym介绍OpenAI Gym由两部分组成:gym开源库:测试问题的集合。当你测试强化学习的时候,测试问题就是环境,比如机器人玩游戏,环境的集合就是游戏的画面。这些环境有一个公共的接口,允许用户设计通用的算法。OpenAI Gym服务。提供一个站点(比如对于游戏cartpole-v0:https://gym.openai.com/envs/CartPole-v0)和api,允许用户对他

2020-09-26 11:04:37 1417

原创 下一个排列

题目实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1思路这一题比较有意思,主要需要观察数字变化的特点。多个数字的排列,其中最小的排列为从左到右数字递增,最大的排列为从左到右数字递减。知道了这个特点,这一题就好思考了

2020-09-13 18:09:23 111

原创 删除链表的倒数第N个节点——双指针

题目给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?思路用双指针就可以一趟扫描实现链表节点的删除,但是需要注意对于第一个节点的删除,在实现过程中通过dummyHead来保证对于第一个节点的删除与对其它节点的删除操作相同,这样就保证了对第

2020-09-08 15:22:44 113

原创 电话号码的字母组合——回溯法

题目给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。思路通过回溯法查找全部可能的组合。代码class Solution {public: vector<string>

2020-09-08 11:10:33 194

原创 盛最多水的容器——双指针

题目给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例:输入:[1,8,6,2,5,4,8,3,7]输出:49思路想要容纳

2020-09-03 12:24:21 124

原创 正则表达式匹配——动态规划

题目给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = "aa"p = "a"输出: false解释: "a" 无法匹配 "aa" 整个字符串。示例 2:输入:s =

2020-09-02 20:14:24 304

原创 Leetcode整数反转

题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231,231−1][−2^{31}, 2^{31} − 1][−231,231−1]。请根据这个假设,如果反转后整数溢出那么就返回 0。思路整数反转部分比较简单。主要需要注意的是题中对边界条件的要求,需要判断

2020-09-02 11:09:46 101

原创 Longest Palindromic Substring——Dynamic Programming

题目Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example 1:Input: "babad"Output: "bab"Note: "aba" is also a valid answer.Example 2:Input: "cbbd"Output: "bb"思路动态规划,若原回文子字符串的首尾相邻

2020-08-30 17:38:05 105

原创 Median of Two Sorted Arrays——Binary Search

寻找两个有序数组的中位数题目Given two sorted arrays nums1 and nums2 of size m and n respectively.Return the median of the two sorted arrays.Follow up: The overall run time complexity should be O(log (m+n)).Example 1:Input: nums1 = [1,3], nums2 = [2]Output: 2.0000

2020-08-30 16:48:54 106

原创 Longest Substring Without Repeating Characters——Sliding Window, Hash Table

题目Given a string, find the length of the longest substring without repeating characters.Example 1:Input: "abcabcbb"Output: 3 Explanation: The answer is "abc", with the length of 3. Example 2:Input: "bbbbb"Output: 1Explanation: The answer is "b",

2020-08-30 12:37:37 98

原创 Add Two Numbers——Linked List

题目You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.You may assume the two numbers do

2020-08-29 18:08:40 104

原创 Two Sum——Hash Table

题目Given an array of integers nums and and integer target, return the indices of the two numbers such that they add up to target.You may assume that each input would have exactly one solution, and you may not use the same element twice.You can return the

2020-08-29 16:56:07 149

原创 算法小结——排序算法总结

总览排序插入排序类直接插入排序O(n2)O(n^2)O(n2)希尔排序O(nlogn)−O(n2)O(nlogn) - O(n^2)O(nlogn)−O(n2)选择排序类简单选择排序O(n2)O(n^2)O(n2)堆排序O(nlogn)O(nlogn)O(nlogn)交换排序类冒泡排序O(n2)O(n^2)O(n2)快速排序O(nlogn)O(nlogn)O(nlogn)归并排序类归并排序O(nlogn)O(nlogn)O(nlogn)直接插入排序

2020-08-03 00:59:33 198

原创 算法小结——背包问题

01背包问题有n个物品,它们有各自的体积和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?动态规划主要思路:矩阵内容解释:物品编号iii表示考虑编号<=i<=i<=i的物品背包容量jjj表示考虑容量为jjj的背包矩阵内数值为当前情况下能装下的最多物品价值矩阵更新过程(DP算法):完全背包问题在01背包问题的基础上,每个物品可选的数量变为无数个。求解过程只需要对01背包问题的求解过程进行简单修改即可,将每个物品的装包过程扩展为可以装无数次,直

2020-07-31 21:05:10 306

原创 Learning to Communicate with Deep Multi-Agent Reinforcement Learning笔记

1. 论文讲了什么/主要贡献是什么文章提出了通过深度学习的方法,对代理间的通信协议进行学习的思想。从而通过代理之间的通信解决多代理强化学习问题。2. 论文摘要:We consider the problem of multiple agents sensing and acting in environments with the goal of maximising their share...

2020-04-01 22:49:22 660 1

原创 COMA: Counterfactual Multi-Agent Policy Gradients笔记

1. 论文讲了什么/主要贡献是什么文章介绍了COMA算法,主要解决了在集中训练、分散决策的框架中,全局全局奖励的分配问题。文中受到difference rewards的启发,采用了根据当前代理采取的动作相比于当前代理采取默认动作对全局奖励的提高来判断代理对全局奖励的贡献大小,从而对代理的actor进行有效的更新。并根据算法设计了能够有效估计优势函数的方式。2. 论文摘要:Cooperativ...

2020-04-01 15:42:47 2126

原创 MADDPG: Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments笔记

Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments1. 论文讲了什么在这篇文章中通过基于所有代理的观测和动作学习一个集中的critic,指导每个代理的actor进行更新的方式,将DDPG方法推广到了多代理强化学习环境中得到了MADDPG算法。主要创新点有(1)将其它代理的观测信息和决策信息用于集中cri...

2020-03-30 12:17:21 918

原创 Deep Recurrent Q-Learning for Partially Observable MDPs(DRQN)笔记

Deep Recurrent Q-Learning for Partially Observable MDPs1. 论文讲了什么/主要贡献是什么传统DQN主要面型MDP的环境,在Atari环境中进行测试的过程中也是采取的输入多个帧的形式,使模型输入的观测能够体现出系统的状态。但现实中大部分都是部分可观测的情况——POMDP,本文在DQN的基础上,结合循环神经网络的特性,将LSTM与DQN结合,...

2020-03-25 20:56:33 710

原创 Value-Decomposition Networks For Cooperative Multi-Agent Learning笔记

Value-Decomposition Networks For Cooperative Multi-Agent Learning1. 论文讲了什么/主要贡献是什么多代理强化学习任务的解决方案存在完全集中,和独立学习两种方案。将二者结合,得到了集中学习、分散决策的值分解网络,并利用已有技术如DQN架构、目标网络、经验回放、Dueling网络以及面向部分可观测环境下采用的RNN网络,设计出值分解...

2020-03-25 15:23:13 2287

原创 QMIX: Monotonic Value Function Factorisation for Deep Multi-Agent Reinforcement Learning笔记

QMIX: Monotonic Value Function Factorisation for Deep Multi-Agent Reinforcement Learning1. 论文讲了什么/主要贡献是什么在多代理强化学习中,存在代理单独计算价值函数和完全集中计算价值函数两种方式,前者存在不稳定的问题,后者存在可扩展性差的问题(维度灾难)。作者在介于两者之前的VDN算法的基础上,对从单代理...

2020-03-24 21:26:05 2269

原创 Putting An End to End-to-End: Gradient-Isolated Learning of Representations 笔记

Putting An End to End-to-End: Gradient-Isolated Learning of Representations1. 论文讲了什么/主要贡献是什么文章提出了Greedy InfoMax算法,该算法在贪婪自监督训练的情况下,仍能较好地完成音频和图像分类任务。神经网络能够进行异步、解耦训练,允许在大于内存的输入数据上对任意深度的网络进行训练。文...

2020-03-18 18:46:57 716

原创 DDPG Continuous control with deep reinforcement learning笔记

Continuous control with deep reinforcement learning综述:1. 论文讲了什么/主要贡献是什么受到DQN算法的启发,将非线性函数逼近器用到了DPG算法中设计出DDPG算法,为了保证算法稳定性,将DQN中的两个核心思想:经验回放和目标网络加入到了DDPG算法中。这个算法中也有一些DDQN的思想。2. 论文摘要:We adapt the ide...

2020-03-18 13:07:01 557

原创 Non-delusional Q-learning and Value Iteration笔记

Non-delusional Q-learning and Value Iteration1. 论文讲了什么/主要贡献是什么文章发现了Q-learning和带有函数逼近或其它策略约束的近似动态规划中存在错觉偏差的问题,并且对错觉偏差进行了定义。发现了一个可以提升算法性能的方式。并且文中开发了一种新的策略类一致性备份操作符,以及相应的基于模型的PCVI和无模型的PCQL算法,这些算法完全消除了错...

2020-03-18 13:03:12 655

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除