阻塞车间调度
阻塞车间调度当前机器上的作业处理必须保留在该机器上,直到下一台机器可用于处理为止。也就是说如果该作业要执行的下一个工序的机器被使用,则该机器必须被占用。
n个作业必须在m个机器f个工厂上进行处理,在每一个工厂中连续机器之间没有缓冲区,该作业被分配给工厂,随后必须在所有机器上按相同的顺序进行加工。一旦一项工作被分配到一家工厂,它就不能转移到另一家工厂。一旦一项工作被分配到一家工厂,它就不能转移到另一家工厂。在一台机器上完成处理的作业不允许离开当前机器,直到下一台机器可用于处理,因为连续机器之间没有缓冲区。每台机器,有各种处理速度。在作业的加工过程中,机器速度没有变化。对于任意两个连续操作,速度的转换时间将被忽略。该开始每个作业在不同的机器上有一个标准时间,若更换速度 则实际使用时间为标准时间除以速度。速度越快时间越短能耗越高
NP-HardNP是指非确定性多项式(non-deterministic polynomial,缩写NP)。所谓的非确定性是指,可用一定数量的运算去解决多项式时间内可解决的问题。也就是说无法通过计算实现的。
模型总结n 作业总数m 分布式工厂机器的数量F 工厂的数量 ...
擂台赛法则构造非支配集
擂台赛法个人理解 就是将x个体与其中所有的个体进行作比较,如果x支配y,删除y如果y支配x则让y作为擂主重新开始比较否则将x并入非支配集。
作者声明1如有问题,欢迎指正!
platemo记录
调用过程main算法主函数然后调用Problem.Initialization();生成种群实例然后调用其判断算法是否执行结束 判断依据是 评价次数是否到达最大评价次数(评价次数指的是种群大小/*迭代次数)while Algorithm.NotTerminated(Population)评价次数的消耗SOLUTION(Parent.dec);每调用一次该方法评价次数消耗一次
作者声明1如有问题,欢迎指正!
生成对抗网络(GAN)
是什么他不是用来把数据对应上结果的, 而是用来”凭空”捏造结果, 这就是我们要说的生成网络啦. GAN 就是其中的一种形式. 那么 GAN 是怎么做到的呢? 当然这里的”凭空”并不是什么都没有的空盒子, 而是一些随机数.
模仿著名画家画画1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192"""View more, visit my tutorial page: https://mofanpy.com/tutorials/My Youtube Channel: https://www.youtube.com/user/MorvanZhouDependencies:torch: 0.4numpymatplotlib"""import t ...
DQN 强化学习
是什么强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。
模块导入1234567891011121314151617import torchimport torch.nn as nnimport torch.nn.functional as Fimport numpy as npimport gym# 超参数BATCH_SIZE = 32LR = 0.01 # learning rateEPSILON = 0.9 # 最优选择动作百分比GAMMA = 0.9 # 奖励递减参数TARGET_REPLACE_ITER = 100 # Q 现实网络的更新频率MEMORY_CAPACITY = 2000 # 记忆库大小env = gym.make('CartPole-v0') # ...
RNN循环神经网络
作用RNN就会把之前的记忆都累积起来, 一起分析.
LSTMLSTM 就像延缓记忆衰退的良药, 可以带来更好的结果. 普通的RNN容易健忘
数据集1234567891011121314151617181920212223242526272829303132333435import torch.utils.data as Dataimport torchimport torchvisiontorch.manual_seed(1) # reproducible# Hyper ParametersEPOCH = 1 # 训练整批数据多少次, 为了节约时间, 我们只训练一次BATCH_SIZE = 64TIME_STEP = 28 # rnn 时间步数 / 图片高度INPUT_SIZE = 28 # rnn 每步输入值 / 图片每行像素LR = 0.01 # learning rateDOWNLOAD_MNIST = True # 如果你已经下载好了mnist数据就写上 Fasle# Mnist 手写数字train_data = ...
CNN卷积神经网络
主要用途当神经网络需要处理这么多输入信息的时候, 也就是卷积神经网络就可以发挥它的优势的时候了。卷积神经网络目前被广泛地用在图片识别上, 已经有层出不穷的应用。
池化在每一次卷积的时候, 神经层可能会无意地丢失一些信息. 这时, 池化 (pooling) 就可以很好地解决这一问题. 而且池化是一个筛选过滤的过程, 能将 layer 中有用的信息筛选出来, 给下一个层分析
手写数字的CNN例子数据集(训练和测试)123456789101112131415161718192021222324252627282930313233343536import torchimport torch.utils.data as Dataimport torchvision # 数据库模块torch.manual_seed(1) # reproducible# Hyper ParametersEPOCH = 1 # 训练整批数据多少次, 为了节约时间, 我们只训练一次BATCH_SIZE = 50 #批量大小LR = 0.001 # 学习率DO ...
自编码器 非监督学习
监督学习与非监督学习监督学习:通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,例如分类。非监督学习:直接对输入数据集进行建模,例如聚类。半监督学习:综合利用有类标的数据和没有类标的数据,来生成合适的分类函数。
自编码自编码是一种非监督学习有时神经网络要接受大量的输入信息, 何不压缩一下, 提取出原图片中的最具代表性的信息, 缩减输入信息量, 再把缩减过后的信息放进神经网络学习. . 所以, 自编码就能在这时发挥作用. 通过将原数据白色的X 压缩, 解压 成黑色的X, 然后通过对比黑白 X ,求出预测误差, 进行反向传递, 逐步提升自编码的准确性. 训练好的自编码中间这一部分就是能总结原数据的精髓.
编码器 Encoder编码器能得到原数据的精髓, 然后我们只需要再创建一个小的神经网络学习这个精髓的数据,不仅减少了神经网络的负担, 而且同样能达到很好的效果.
主要作用给特征值降维
解码器至于解码器 Decoder, 我们也能那它来做点事情. 我们知道, 解码器在训练的时候是要将精髓信息解压成原始信息, 那么这就提供了一个解压器的作用, 甚至我们可以 ...
比较神经网络的优化器
创建数据集并进行小批量分组12345678910111213141516171819import torchimport torch.utils.data as Dataimport matplotlib.pyplot as plttorch.manual_seed(1) # reproducible #设置CpuBATCH_SIZE = 32 #批量大小# fake datasetx = torch.unsqueeze(torch.linspace(-1, 1, 1000), dim=1) #初始化数据集 shape 1000 1y = x.pow(2) + 0.1*torch.normal(torch.zeros(*x.size())) #初始化 y# plot dataset 画图plt.scatter(x.numpy(), y.numpy())plt.show()# 使用上节内容提到的 data loader 开始小批量 shuffle 打乱torch_dataset = Data.TensorDataset(x, y) loader = Data.DataLoader( ...
快速搭建神经网络
搭建方法1激励函数实际上是在 forward() 功能中才被调用的 也就是说可以控制向前传播
123456789101112class Net(torch.nn.Module): def __init__(self, n_feature, n_hidden, n_output): super(Net, self).__init__() self.hidden = torch.nn.Linear(n_feature, n_hidden) self.predict = torch.nn.Linear(n_hidden, n_output) def forward(self, x): x = F.relu(self.hidden(x)) #激励函数 x = self.predict(x) return xnet1 = Net(1, 10, 1) # 这是我们用这种方式搭建的 net1
搭建方法212345net2 = torch.nn.Sequential( torch.nn.Line ...