每周总结——2018.3.3

每周总结

上个学期的学习经验告诉我要勤总计。新的学期开始总结这周做的事。
本周学习四天半,内容主要两部分

  • PYTHON

PYTHON中特有的数据结构

  1. 列表list [1,2,3,4]
    类似数组,但各元素的数据类型可不同
    for i,value in enumerate([‘A’,’B’,’C’])可以迭代索引和元素本身
    pop(),pop(下标),insert(下标,值),append(值)

  2. 元组tuple (1,2,3,4) 同List,但不能修改
    无list的方法

  3. 字典dict {‘a’:1, ‘b’:2, ‘c’:3, ‘d’:4}
    插入d[‘e’] = 5,pop(键值) d.get(键值)
    使用键-值存储

  4. 集合set {1,2,3,4}
    无重复元素
    add(值),remove(值)

函数参数

  1. 位置参数(普通参数)

  2. 默认参数(给参数赋初值)

  3. 可变参数(*参数名)
    def calc(x): calc([1,2,3])
    def calc(*x): calc(1,2,3)
    上面两个等价,可变参数传入的参数构成list

  4. 关键字参数(**参数名)
    def person(**kw): person(name=”aa”,age=18)
    在函数内部组装为dict 即kw的值为{name:”aa”,age:18}

  5. 命名关键字参数(*,关键字参数名)
    在关键字参数的基础上限制了传入的参数名
    def person (name,age,*,city,job):

  6. 定义顺序
    位置参数、默认参数、可变参数/命名关键字参数、关键字参数
    可变参数和命名关键字参数不能同时使用

列表生成式

  1. 如: [x * x for x in range(1,11) if x%2==0 ]

迭代器、可迭代对象

  1. 迭代器(generator):可用next()方法访问的对象。用生成器定义(列表生成式的[]改为() )或带有yield的迭代函数
  2. 迭代器都是可迭代对象,但可迭代对象不一定都是迭代器
  3. 可迭代对象是可以用for访问的对象,一类是集合数据类型:list、tuple、set、dict、str;一类是generator

其他

  1. PYTHON中全部大写表示常量
  2. encode() decode() 编码解码
  3. /的结果为浮点数 //的结果取整数部分 m**n 其实是m^n
  4. 注意if else for def while后面都有:
  5. 函数返回多个值其实是返回tuple
  6. type()判断类型 str.lower()大写转换小写 str.capitalize()首字母大写 list将Iterator中的元素转为list isinstance()判断是否为某种类型

  • 智能算法

遗传算法(GA)

  • 算法关键:

编码、初始化种群、适应度函数、选择、交叉、变异

  • 算法分支:

多种群遗传算法(MPGA):多个种群在不同参数下进化,各种群通过移民算子(定期的将出现的最优个体引入其他种群)交流,通过人工选择算法保存各个种群每个进化代中的最优个体(精华种群不进行选择、交叉、变异)
量子遗传算法(QGA):将标准遗传算法的遗传操作替换为量子门更新
多层编码遗传算法:把个体编码分为多层,每层编码表示不同的含义,多层编码共同完整表达了问题的解(其实就是可以把一个编码串划分为几个部分,每个部分代表不同含义)例如:车间调度算法把编码的前半部分表示为加工顺序,后半部分表示为加工对应的机器

  • 解题步骤:

1.根据问题选择合适的编码方式
实数或二进制
2.设置合适的算法参数
种群大小(20-100)、编码长度、交叉概率、变异概率(0.4-0.99)、精英数等
3.初始化群体
4.适应度评估
一般使用目标函数
5.选择
轮盘赌等方式
6.交叉
根据问题特点选择交叉的方式
7.变异
根据问题特点选择变异方式

  • 求解问题列举:
项目编码方式选择交叉变异
一元函数优化二进制轮盘赌交换两个体某一点后的二进制某一位变异
多元函数优化二进制(有几个变量就有相应长度的编码)同上同上同上
TSP问题(旅行商问题)实数同上部分映射杂交,确保没有重复的城市选择一个个体的两个个位置交换元素

- 用遗传算法优化其他算法列举:

项目优化方式编码方式
非线性规划的函数寻优算法使用遗传算法全局寻找非线性规划的初始值再使用fmincon函数局部求解实数
BP神经网络优化算法使用遗传算法求解初始的权值和阈值,再使用神经网络算法训练网络后得到测试误差作为适应度,进行下一轮二进制

免疫算法
与遗传算法类似,都是采用群体搜索策略,都要经过“初始种群产生->评价标准计算->种群间个体信息交换->新种群产生”

对比免疫算法遗传算法
问题抗原问题
可行解抗体个体
个体评价期望繁殖概率(抗体与抗体之间的亲和度和抗体浓度决定)适应度
操作克隆选择、免疫记忆、疫苗接种、交叉、变异选择、交叉、变异
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值