遗传算法车间调度

遗传算法车间调度
摘要由CSDN通过智能技术生成

遗传算法车间调度问题


遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,借鉴了达尔文的进化论和孟德尔的遗传学说。其本质是一种高效、并行、全局搜索的方法,能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最佳解。

再给出相关术语:(各位看看就好,后面都会涉及到,再细说)

基因型(genotype):性状染色体的内部表现;

表现型(phenotype):染色体决定的性状的外部表现,或者说,根据基因型形成的个体的外部表现;

进化(evolution):种群逐渐适应生存环境,品质不断得到改良。生物的进化是以种群的形式进行的。

适应度(fitness):度量某个物种对于生存环境的适应程度。

选择(selection):以一定的概率从种群中选择若干个个体。一般,选择过程是一种基于适应度的优胜劣汰的过程。

复制(reproduction):细胞分裂时,遗传物质DNA通过复制而转移到新产生的细胞中,新细胞就继承了旧细胞的基因。

交叉(crossover):两个染色体的某一相同位置处DNA被切断,前后两串分别交叉组合形成两个新的染色体。也称基因重组或杂交;

变异(mutation):复制时可能(很小的概率)产生某些复制差错,变异产生新的染色体,表现出新的性状。

编码(coding):DNA中遗传信息在一个长链上按一定的模式排列。遗传编码可看作从表现型到基因型的映射。

解码(decoding):基因型到表现型的映射。

个体(individual):指染色体带有特征的实体;
种群(population):个体的集合,该集合内个体数称为种群的大小。

问题:
在这里插入图片描述

import random
import numpy as np

def dealNums(nums):
    fact_n=len(nums)#取得零件数
    machine_n=len(nums[0])#机器数量
    fact=[1 for i in range(fact_n)]#每个零件总时长,一个零件的工作量看成整体为1
    result = [[] for i in range(machine_n)]#机器加工完成零件的表

    while True:
        if sum(fact)==0:#当所有零件工时都完成退出循环
            break
        chioc=[i  for i in range(fact_n)]# 创建随机选择数组就是零件编号
        for  i in range(machine_n):#循环机器编号
            val=random.choice(chioc)#随机选择零件编号
            chioc.remove(val)#选择完后移除
            if(fact[val])==0:#如果这个零件编号的工作量为0就添加标记
                result[i].append('')
                continue
            result[i].append(val)#不为0就向工资表里面添加零件的编号
            fact[val] -= 1 / nums[val][i]#减去零件在i号机器中总时间分之一
            if fact[val] < 0:#剩余高质量要大于等于0
                fact[val] = 0

    # print(len(result[0]))

    return result

# 计算传入工作表的工作量还能剩余多少
#answer工资表,n截取下标
def start (answer,n):

    global nums
    res = [1 for i in range(len
  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值