- 博客(40)
- 收藏
- 关注
原创 文献整理-Job-Shop调度问题的两级元启发式算法
元启发式算法元启发式算法(MetaHeuristic Algorigthm)是启发式算法的改进,它是随机算法与局部搜索算法相结合的产物。元启发式算法能够在一定程度上在全局进行搜索,找到最优解的近似解。元启发式算法的核心是Exploration和Exploitation。其中,Exploration即尽量探索整个搜索空间,由于最优解可能存在在整个搜索空间的任何位置。而Exploitation即尽可能的利用到有效的信息,在大部分的情况下优解之间往往存在着一定的相关性,利用这些相关性来逐步调整,从初解慢慢搜索
2021-07-22 17:17:01 677
原创 神经网络-DNN概念理解(二)
网络偏置的作用和意义1、Bias称为偏置或者阈值,偏置项的大小决定了网络产生正激励的程度;2、偏置不需要正则化,否则会导致欠拟合,偏差上升,学习能力下降损失函数(Loss Function)损失”就是所有样本的“误差”的总和,亦即(m为样本数):作用:计算神经网络每次迭代的前向计算结果与真实值的差距,从而指导下一步的训练向正确的方向进行。损失函数越大,说明该分类器在真实标签上的分类概率越小,性能也就越差。当损失函数接近正无穷时表明训练发散,需要调小学习速率。具体步骤:1、用随机值初始化
2021-07-20 18:47:14 912 1
原创 神经网络-DNN相关概念理解
DNN与感知机:又称深度神经网络,有时也叫做多层感知机(Multi-Layer perceptron,MLP)。跟之前学习的感知器一样,在此基础上增加了隐含层的层数,使网络的深度增加。层与层之间是全连接的,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。拥有一个线性关系:输入z位来自各节点的输入加权和,w是权值列向量,x是输入列向量激活函数:使用非线性激活函数,我们便能够从输入输出之间生成非线性映射。我们需要这样做,以便在网络中向后推进以计算相对于权重的误差(丢失)梯度时执行反向优
2021-07-19 19:51:13 761
原创 神经网络学习-RBF径向基网络
RBF网络一、概述Radical Basis Function ,RBF(径向基)网络的结构与多层前向网络类似,它是一种三层前向网络。第一层为输入层,由信号源结点组成;第二层为隐含层,隐单元数量由所描述问题决定,隐单元的变换函数是对中心点径向对称且衰减的非负非线性函数,该函数是局部响应函数(之前的前向网络变换的函数是全局的);第三层为输出层,它对输入模式的作用作出响应。从输入空间到隐含层空间的变换是非线性的,而从隐含层空间的输出层空间变换是线性的。具有n个输入的RBF神经网络结构:b为阈值,
2021-07-16 20:07:11 1375 1
原创 2021-07-15CPMP-DNN
container pre-marshalling problem (CPMP)问题描述:包括一组排列成s个堆的c个容器,堆的最大高度为t。参数Gij提供了堆 i 中容器在tier(高度) j 处的组值(检索时间)。CPMP的目标是找到一个最小长度的堆到堆移动序列( i,i’ ),其中容器从堆 i 的顶部移动到堆 i’ 的顶部,从而对所有堆进行排序,即Gij≥ Gi,j+1,∀ 1 ≤ i ≤ S,1 ≤ j < T。CPMP问题实例及其最优解。从左边开始,有三个堆栈,总共有六个容器,每个
2021-07-15 20:29:28 375
原创 求解作业车间调度问题的Actor-Critic深度强化学习文献翻译
Actor-Critic Deep Reinforcement Learning for Solving Job Shop Scheduling Problems求解作业车间调度问题的Actor-Critic深度强化学习Actor-Critic算法:强化学习中的一种结合体 Actor Critic (演员评判家), 它合并了 以值为基础 (比如 Q learning) 和 以动作概率为基础 (比如 Policy Gradients) 两类强化学习算法.强化学习中有一个方向是直接基于策略(policy)
2021-07-14 16:33:08 982
原创 JSP作业车间调度问题及约束整理
作业车间调度问题的数学描述作业车间调度问题(JSP)一般被描述为:在给定每个工件的加工工艺、每个工件使用机器的序列及每个工件每道工序的加工时间的情况下,安排一种工件的加工顺序,使得n个待加工的工件在m台机器上进行加工,满足某种性能指标最优化。本文所使用的性能指标为“最小化最大完工时间”,且该问题需要满足如下假设及约束:a)机器不发生故障,从零时刻开始加工工件。b)同一台机器在同一时刻只能加工一个工件;同一工件同一时刻只能在一台机器上加工。c)工件的加工工序严格遵守加工时间,一旦开始不得中断;工序间不允
2021-07-14 15:08:07 2274 4
原创 神经网络学习-感知器原理
1、感知器理解感知器是生物神经细胞的简单抽象,被指认为单层的人工神经网络,区别于复杂的多层感知器。单层感知器是最简单的前向人工神经网络形式。感知器是一种线性分类器,结构简单,能够学习并解决复杂的问题。一、感知器模型单层感知器是指只有一层处理单元的感知器,不包含输入层;若有输入层,则为两层。输入层也为感知层,有N个神经元节点,无信息处理能力,只负责引入外部信息。每一个节点接受一个输入信号,N个节点一起组成了输入列向量P。输出层也成为处理层,只有一个神经元节点,可以处理信息。两层之间的链接用权值列
2021-07-12 17:06:38 5407 4
原创 粒子群算法案例学习-非线性函数寻优
一、实例fun.m脚本文件%%函数用于计算粒子适应度值function y=fun(x)%x input 输入粒子 %y output 粒子适应度值 y=-20*exp(-0.2*sqrt((x(1)^2+x(2)^2)/2))-exp((cos(2*pi*x(1))+cos(2*pi*x(2)))/2)+20+exp(1);%%当c1=20,e=2.71282,n=2时,寻优的非线性函数为Ackley函数%存
2021-07-12 16:10:07 656
原创 柔性作业车间调度FJSP的描述和分类
柔性作业车间调度问题一、问题描述(flexiblejobshopschedulingproblem,FJSP)的描述如下:n个工件(J1,J2,…,Jn)要在m台机器(M1,M2,…,Mm)上加工;每个工件包含一道或多道工序;工序顺序是预先确定的;每道工序可以在多台不同加工机器上进行加工;工序的加工时间随加工机器的不同而不同;调度目标是为每道工序选择最合适的机器,确定每台机器上各道工序的最佳加工顺序及开工时间,使整个系统的某些性能指标达到最优。因此,柔性作业车间调度问题包含两个子问题:确定各工件的加工机
2021-07-07 20:42:16 2165
原创 粒子群(PSO)算法学习
粒子群优化算法(Particle Swarm Optimization),缩写为 PSO,属于进化算法的一种。和模拟退火算法相似,它也是从随机解出发,通过迭代寻找最优解。 它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的“交叉”(Crossover)和“变异”(Mutation)操作,它通过追随当前搜索到的最优值来寻找全局最优。一、概念:粒子群是基于群体的算法,每个个体称为粒子,粒子组成粒子群,群体在可行区域中逐步移动。每次移动过程中,算法计算每个粒子的目标函数,根据该值
2021-07-07 15:19:44 9627 1
原创 神经网络概念整理
神经元(节点,维度)一个特征向量。在输入层的,就是你的原始数据的输入的特征向量,在其他层的,则是通过一系列线性或非线性变换得到的特征向量。直观上不正式的讲,就是数据中的‘一列’。输入层矩阵,最常见的就是二维矩阵(表格数据)。那么输入层,,就是输入数据的那一层。这一层的节点个数就是你数据的特征(变量)个数,每个节点(神经元)就是一个特征列向量(我假设了你的数据是一个csv文件,每一列是一个特征,每一个行是一个样本。)隐藏层其实就是输入层中的二维数据,经过各种矩阵点积、公式变换后的特征向量,也是每个
2021-07-05 16:37:16 621
原创 matlab BP神经网络的数据信号分类案例学习matlab编程
load函数 加载指定文件的变量load filename.mat funhandle把*.mat 文件中存储的函数句柄加载到工作区load data1 c1 加载数据库文件data1.mat中的c1工作区变量data(1:500,:)=c1(1:500,:);将c1的1到500行,所有列的元素赋值给data的1到500行,将四个矩阵合为一个矩阵r = rand(m,n):产生维数为 n×m 的 0~1 间均匀分布的随机矩阵。[m,n]=sort(k);MATLAB 中函数 sort()的作用是
2021-07-04 20:08:32 407
原创 matlab 数组和矩阵
在 MATLAB 中一般使用方括号“[ ]”、逗号“,”、空格号和分号“;”来创建数组,数组中同一行的元素使用逗号或空格进行分隔,不同行之间用分号进行分隔。例 3-1,创建空数组、行向量、列向量示例。在命令行窗口中输入如下语句:clear all A=[] B=[6 5 4 3 2 1] C=[6,5,4,3,2,1] D=[6;5;4;3;2;1] E=B' %转置例 3-2,访问数组示例。clear all A=[6 5 4 3 2 1] a1=A(1) %访问数组第一个元素
2021-07-02 18:13:37 285
原创 2021-06-15
基于深度强化学习与迭代贪婪的流水车间调度优化以最小化最大完工时间为目标, 提出求解流水车间调度设计一种新的编码网络对问题进行建模利用强化学习训练模型以获取优良输出结果提出一种带反馈机制的迭代贪婪算法, 以网络的输出结果为初始解, 协同利用多种局部操作提高搜索能力, 并根据性能反馈来调节各操作的使用, 进而获得最终的调度解。将深度学习与强化学习结合形成深度强化学习(Deepreinforcementlearning, DRL), 可自主挖掘问题的特征, 积累问题信息并进行决策优化, 有助于设计面向特
2021-06-15 21:30:42 187 1
原创 论文文献_1
基于自适应多目标变邻域搜索的节能无等待置换流水车间调度摘要问题类型:节能无等待排列流水车间调度问题解决:同时考虑最大完工时间和总能耗机器处理速度与能量消耗有关,速度与能量成正相关,速度与处理时间呈负相关提出了一种自适应多目标变邻域搜索(AM-VNS)算法。设计了两个基本的速度调整启发式,可以在不降低给定解决方案的能量消耗的情况下降低其最大完工时间。两种广泛使用的邻域生成操作,即插入和交换,被适应并集成到变邻域下降阶段。根据执行顺序,可以设计两种变邻域下降结构。我们采用一种自适应机制来动态地决定选
2021-06-09 11:32:01 93
原创 matlab 笔记-变量
matlab中关于程序运行的快捷键多行注释: 选中要注释的若干语句, 快捷键Ctrl+R取消注释: 选中要取消注释的语句, 快捷键Ctrl+T程序运行:F12 设置取消断点F5 运行整个程序F9 运行选中的部分程序MATLAB常用的运算符和特殊字符如下表所示:运算符目的+加;加法运算符减;减法运算符标量和矩阵乘法运算符.*数组乘法运算符^标量和矩阵求幂运算符.^数组求幂运算符矩阵左除/矩阵右除.阵列左除./阵列右除:向量生成;子阵提取(
2021-06-09 10:47:44 251
原创 2021-06-08 matlab 笔记
1、变量名以简洁明了为主,以字母开头2、清除clc: %清除命令行窗口的所有命令clear all %工作区所有变量3、变量名不能超过63位4、数据类型:数字 字符 字符串 单引号 ‘zifu’5、abs(s): ASCII码数值 97对应a;6、num2str(65) 把数字转成字符串矩阵A=[1 2 3;4 5 6;7 8 9] %分号是下一行 空格是分列B=A' %转置####C=A(:) %按每一列排列拉长D=inv(A) %方阵求逆rand(m,n) %生成
2021-06-08 23:07:06 366
原创 答辩yyds
1、SSHSSH是 struts+spring+hibernate的一个集成框架,是16年之前较为流行的一种Web应用程序开源框架。区别于 Secure Shell 。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts
2021-05-06 22:14:15 443
原创 LeetCode147. 对链表进行插入排序
思路:直插 分为有序和无序序列,本题的head头结点也有数据,所以要建立一个哑节点,后继节点指向head单独的head节点断链,作为有序序列,然后依次遍历无序序列,用P指针遍历,q指针保存p的后继,逐个插入到有序序列中AC错误:head也有数据注意点:ListNode list=new ListNode() 初始化一个空节点,无值,不提倡此种写法。ListNode list=new ListNode(0) 初始化一个节点值为0的空节点,最常用最正规写法ListNode list=null 为空
2021-04-26 20:56:07 54
原创 LeetCode 881救生艇 贪心 双指针
第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit。每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。返回载到每一个人所需的最小船数。(保证每个人都能被船载)。例:输入:people = [3,2,2,1], limit = 3输出:3解释:3 艘船分别载 (1, 2), (2) 和 (3)思路:本题关键是一艘船最多坐两个人,所以最节省的方法是最重和最轻的人坐一起。可以用反证法证明,假设最重的人未和最轻的人坐一起,而和另一人坐,那么将此人
2021-04-26 16:12:18 94
原创 力扣 141 环形链表: 哈希表判断 和快慢指针
class Solution {public: bool hasCycle(ListNode *head) { unordered_set<ListNode*> st; ListNode* p = head; while(!st.count(p) && p != NULL) { st.insert(p); p = p->next; }
2021-04-25 16:42:10 118
原创 LeetCode1 两数之和 暴力 哈希
1 两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。1)暴力遍历求解:class Solution {public:
2021-04-20 22:04:38 69
原创 银行家算法思想
银行家算法思想检查进程请求资源数目是否超过最大需求量检查系统当前可用资源是否满足进程请求数目试探着分配 修改各数据结构利用安全性算法 看是否进入安全状态安全性算法检查系统当前可用资源是否满足进程最大需求量如满足 加入安全序列 并对该进程个...
2021-03-20 18:34:05 1141
原创 悬浮指针(总结转载)
指针指针就是用来保存内存地址的变量,因此定义了一个指针后就要给它赋一个地址,或初始化为空指针。使用delete释放掉指针指向的内存后,不再使用该指针,将其置为空指针。悬浮指针(迷途指针)c++中的悬浮指针:声明了但没有被付值的指针,它指向内存中的任意一个空间。避免悬浮指针的一个方法是开始就付值为NULL野指针“野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种:一、指
2021-03-14 15:03:21 1056
原创 复试问题1
封装:1.封装是面向对象编程的一大特点2.面向对象编程的第一步 将属性和方法封装到一个抽象的类中3.外界使用类创建对象,然后让对象调用方法4.对象方法的细节都被封装在类的内部谈一谈你对当前 5G 技术和云计算技术的理解答:5G,第五代移动通信技术,有三个关键特征,超高速率,实现每秒10Gb的下载速率,是4G的100倍。超可靠超低时延,实现1ms的低时延,是4G时延的40分之一;超大连接,实现每平方公里100万的连接数,是4G的100倍。云计算技术:分布式计算的一种,指的是通过网络“云”将巨大的数
2021-03-13 17:23:11 142
原创 将带头单链表L逆置(不能建立新的节点,通过表中已有节点重新组合)2020.11.11
思想:利用单链表头插法将L第一个有数据信息的节点及之后的节点依次插入到L中 关键:将单链表L置为空第一个是用q指针保存原始链表的后继节点,逆置p p节点始终为旧链表的开始节点,完成头插。void Reverse(LNode *&L){ LNode p=L->next; LNode q; L->next=NULL; //将L指向下一个节点的指针置为空 while(p!=NULL) { q=p->next;
2020-11-11 16:55:17 461
原创 元素类型为整型的顺序表L,将其所有小于表头元素的整数放在前面,小于表头的放在后面2020.11.11
思想:以顺序表第一个表头元素为枢纽,进行一次快速排序即可;typedef struct { int data[maxSize]; int length;}SqList;void Sort(SqList &L){ int i,j; int temp; i=0; j=L.length-1; temp=L.data[i]; while(i<j) { while(i<j&&temp<L.data[j]) --j; if(i<
2020-11-11 16:11:16 347
原创 直插排序2020.11.10
思想:对顺序表或一维数组进行直接插入排序。把无序序列的一个关键字作为有序序列,从之后的无序序列一次插入到有序序列当中,将待插关键字与有序序列从后往前依次比较,若比有序序列第j个关键字小,则将第j个及其以后的关键字后移,将待插关键字插入到第j个位置,直到无序序列中所有关键字都已插入,排序结束。直插、折半、希尔都是插入类排序,该类排序特点是在未完成一趟排序之前,所有的关键字均未到达最终为位置。性能分析:最坏情况下 逆序 执行次数n*(n-1)/2次 时间复杂度为O(n²);
2020-11-10 23:00:57 127
原创 快速排序2020.11.08
快速排序思想:将第一个关键字作为枢纽,表头记为i,表尾的记为j。表尾从表尾开始往前依次扫描,直到找到一个比该枢纽小的关键字,与枢纽所在的位置进行交换,交换后,从表头的位置上依次向后扫描,找到一个比枢纽大的关键字,与j的位置的关键字进行交换,i,j交替依次进行,直到i=j结束该趟排序。快排是将一个序列根据某个关键字进行划分,使其左子表的元素都小于该关键字,右子表的元素都大于该关键字,然后再对左子表和右子表分别进行快排,是整个序列有序。是一个递归算法,越无序,效率越高。最坏时间复杂度为O(N²),平均时间复
2020-11-08 22:16:48 128
原创 带头非递增无序单链表删除重复节点
带头非递增无序单链表删除重复节点 (保留第一个节点,删除后续重复节点)如[1,3,4,1,2,1]执行操作后变为[1,3,4,2]// 非递归实现去重NODE *Delete(LNODE *L){ NODE *p,*q,*r; p = head->next; // 适用于有头节点的单链表;对于不带头节点的单链表,此处改为 p=head 即可。 while(p != NULL) // p用于遍历链表 { q = p; whi
2020-11-07 23:25:31 237
原创 Python_字符画填充
Python_字符画填充在同一个文件夹里:1、添加填充的图片 “1.jpg”2、新建文本文档“1.txt”3、新建py文件使用到PIL(pillow)库的Imagefrom PIL import Image #导库ascii_char=list("&#ABCDE.,/'") #定义字符集 像素从大到小def get_char(r,g,b,alpha=256)...
2020-01-01 13:51:52 318
原创 Java Web 实例操作
实例1 :九九乘法表 <%for(int i=1;i<=9;i++) { for(int j=1;j<=i;j++) { out.print(j+"*"+i+"="+i*j+" "); }%> <br> <% } %>实例2 :包含页面给被包含页面传两个double型参数,被包含页...
2019-12-30 20:11:30 991
原创 Java 学期末总结 java连MySQL数据库 4.0版本(3)
java连数据库实现删除用户信息功能和更改用户信息功能类:Delete类、UpDate类、Main类、Delete类:public class Delete { public ArrayList<Join> delete(String name) { ArrayList<Join> list=new ArrayList<Join>(); S...
2019-12-29 18:59:15 136
原创 Java 学期末总结 java连MySQL数据库 4.0版本(2)
java连数据库实现插入用户信息功能和查找用户信息功能插入信息功能类似于注册功能,都是先看是否存在用户名,存在才可以注册;然后进行插入信息;所有查看用户名是否存在的方法都可以提出来作为一个公共方法;类:Join类、JoinOp类、Search类、Main主类、Join类:public class Join { //个人信息表的数据 private String name;...
2019-12-28 21:46:45 162
原创 Java 学期末总结 java连MySQL数据库 4.0版本(1)
java连数据库实现登录注册功能4.0版本主要不同是应用ArrayList链表 和map表存储信息,将每一个表看成一个list ,每一个属性字段及所属列的值看成一个map 直接对链表 map表进行操作。版本四是最成熟、最完善的一个,它将所有的类和方法重新编排,在工具类和main类的基础上新增了查询类,登录类,注册类,添加类,也就是说把所有的操作都单独分开,一种操作是一种类。每一张表也新建类,...
2019-12-27 22:05:47 262
原创 Python_用数码管绘制当前日期
Python_用数码管绘制当前日期使用到turtle datetime内置库import turtle , datetime # 导入两个库 def drawLight(draw): #定义单端数码管绘制函数 turtle.pendown() if draw else turtle.penup() #是否抬起画笔 turtl...
2019-12-27 14:42:51 307
原创 Java 学期末总结 java连MySQL数据库 1.0之后较低版本
java连数据库实现登录注册功能较低版本 简单工具Tool类和主类Tool类中:1、定义变量定义全局变量 className、url、user、password定义为空值的连接接口、查询器、结果集 :connection statement resultsetString className="com.mysql.cj.jdbc.Driver"; String url="jdb...
2019-12-26 22:44:34 190
原创 python _ 统计红楼梦人员姓名出现次数
python _ 统计红楼梦人员姓名出现次数使用到jieba库 --Python 第三方中文分词库1 安装jieb库 ;2 红楼梦 TXT 文档import jiebatxt = open ("红楼梦.txt","r",encoding='utf-8').read()wenben =jieba.lcut(txt) #使用精确模式对文本进行分词counts ={} # 通过...
2019-12-26 21:15:01 4367
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人