之前介绍过遗传算法,参见:https://www.cnblogs.com/LoganChen/p/7509702.html

我们用Python实现同样的问题解答。

y=10*sin(5*x)+7*abs(x-5)+10

我们来求这个函数在0-10之间的最大值。

先来看一下这个函数的图像:

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. """
  4. **Colors**
  5.  
  6. The following color abbreviations are supported:
  7.  
  8. ============= ===============================
  9. character color
  10. ============= ===============================
  11. ``'b'`` blue
  12. ``'g'`` green
  13. ``'r'`` red
  14. ``'c'`` cyan
  15. ``'m'`` magenta
  16. ``'y'`` yellow
  17. ``'k'`` black
  18. ``'w'`` white
  19. ============= ===============================
  20.  
  21. If the color is the only part of the format string, you can
  22. additionally use any `matplotlib.colors` spec, e.g. full names
  23. (``'green'``) or hex strings (``'#008000'``).
  24.  
  25. **Markers**
  26.  
  27. ============= ===============================
  28. character description
  29. ============= ===============================
  30. ``'.'`` point marker
  31. ``','`` pixel marker
  32. ``'o'`` circle marker
  33. ``'v'`` triangle_down marker
  34. ``'^'`` triangle_up marker
  35. ``'<'`` triangle_left marker
  36. ``'>'`` triangle_right marker
  37. ``'1'`` tri_down marker
  38. ``'2'`` tri_up marker
  39. ``'3'`` tri_left marker
  40. ``'4'`` tri_right marker
  41. ``'s'`` square marker
  42. ``'p'`` pentagon marker
  43. ``'*'`` star marker
  44. ``'h'`` hexagon1 marker
  45. ``'H'`` hexagon2 marker
  46. ``'+'`` plus marker
  47. ``'x'`` x marker
  48. ``'D'`` diamond marker
  49. ``'d'`` thin_diamond marker
  50. ``'|'`` vline marker
  51. ``'_'`` hline marker
  52. ============= ===============================
  53.  
  54. **Line Styles**
  55.  
  56. ============= ===============================
  57. character description
  58. ============= ===============================
  59. ``'-'`` solid line style
  60. ``'--'`` dashed line style
  61. ``'-.'`` dash-dot line style
  62. ``':'`` dotted line style
  63. ============= ===============================
  64. """
  65. x = np.arange(0,10,0.05)
  66. y = 10*np.sin(5*x)+7*np.abs(x-5)+10
  67. plt.figure(figsize=(8,4))
  68. plt.plot(x,y,color="green",linestyle='dashed',linewidth=1)
  69. # plt.plot(x, y, color='green', marker='o', linestyle='dashed',linewidth=2, markersize=12)
  70. plt.xlabel("x")
  71. plt.ylabel("y")
  72. plt.ylim(0,56)
  73. # plt.title("y=10*sin(5*x)+7*abd(x-5)+10")
  74. plt.title("$y=10*sin(5*x)+7*abs(x-5)+10$")
  75. plt.show()

函数图像如图:

我们对种群进行编码,我们也使用二进制编码,二进制编码长度为10.

遗传算法介绍并附上Python代码的更多相关文章

  1. 遗传算法介绍并附上Matlab代码

    摘自http://www.cnblogs.com/hxsyl/p/5240905.html 1.遗传算法介绍 遗传算法,模拟达尔文进化论的自然选择和遗产学机理的生物进化构成的计算模型,一种不断选择优良 ...

  2. 机器学习中应用到的各种距离介绍(附上Matlab代码)

    转载于博客:各种距离 在做分类时常常需要估算不同样本之间的相似性度量(SimilarityMeasurement),这时通常采用的方法就是计算样本间的"距离"(Distance). ...

  3. Python代码整洁之道(一)

    很多新手在开始学一门新的语言的时候,往往会忽视一些不应该忽视的细节,比如变量命名和函数命名以及注释等一些内容的规范性,久而久之养成了一种习惯.对此呢,我特意收集了一些适合所有学习 Python 的人, ...

  4. 【原创】Python 使用jmpy模块加密|加固 python代码

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! 使用jmpy模块 将py文件加密为so或 ...

  5. day02编程语言,Python语言介绍,Python解释器安装,环境变量,Python代码执行,pip,应用程序使用文件的三步骤,变量,变量的三大组成,比较,pycharm

    复习 重点: 1.进制转换:二进制 与十六进制 2.内存分布:栈区 与堆区 # 二进制1111转换十六进制 => 8 4 2 1 => f 10101100111011 => 2a7 ...

  6. 介绍几种给你的Python代码加上酷炫的进度条的方式

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 大家好,在下载某些文件的时候你一定会不时盯着进度条,在写代码的时候使用进度 ...

  7. 隐马尔科夫模型,第三种问题解法,维比特算法(biterbi) algorithm python代码

    上篇介绍了隐马尔科夫模型 本文给出关于问题3解决方法,并给出一个例子的python代码 回顾上文,问题3是什么, 下面给出,维比特算法(biterbi) algorithm 下面通过一个具体例子,来说 ...

  8. 一行python代码实现树结构

    树结构是一种抽象数据类型,在计算机科学领域有着非常广泛的应用.一颗树可以简单的表示为根, 左子树, 右子树. 而左子树和右子树又可以有自己的子树.这似乎是一种比较复杂的数据结构,那么真的能像我们在标题 ...

  9. 上传自己的Python代码到PyPI

    一.需要准备的事情 1.当然是自己的Python代码包了: 2.注册PyPI的一个账号. 二.详细介绍 1.代码包的结构: application \application __init__.py m ...

随机推荐

  1. java语言总结

    优点: 安全(废弃指针) 任何一个学过C或者C++的人都知道指针的操作对于他们是很重要的,指针能够支持内存的直接操作,这样的直接操作能够带来的是效率上的提高.但是任何一个东西都是有副作用的,指针给程序 ...

  2. netcore容器与配置文件操作

    using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.Json; using Micro ...

  3. 2-1docker图形管理界面

    1.Portainer Shipyard:(停止维护) https://github.com/shipyard/shipyard https://www.portainer.io/installati ...

  4. 可能是全网最好的MySQL重要知识点 | 面试必备

    可能是全网最好的MySQL重要知识点 | 面试必备  mp.weixin.qq.com 点击蓝色“程序猿DD”关注我 回复“资源”获取独家整理的学习资料! 标题有点标题党的意思,但希望你在看了文章之后 ...

  5. Sourcetree 集成 Azure DevOps Server(Git)

    概述- SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端管理工具,同时也是Mercurial和Subversion版本控制系统工具.支持创建.克隆.提交 ...

  6. WeakhashMap源码2

    public class WeakHashMapIteratorTest { @SuppressWarnings({ "rawtypes", "unchecked&quo ...

  7. Lua table的remove函数

    [1]remove函数简介 table.remove(table, pos): 返回table数组中位于pos位置的元素,其后的元素会被前移. pos参数可选, 默认为table长度, 即从最后一个元 ...

  8. [翻译] InfluxDB 存储机制解析

    原文地址: https://medium.com/dataseries/analysis-of-the-storage-mechanism-in-influxdb-b84d686f3697 TODO

  9. Prometheus 重新标签

    Prometheus 重新标签 允许在采集之前对任何目标及其标签进行修改 • 重命名标签名 • 删除标签 • 过滤目标 action:重新标签动作 replace:默认,通过regex匹配source ...

  10. Django 安装使用

    Django 安装使用 Django 介绍: Django是一个开放源代码的Web应用框架,由Python写成.采用了MVT的框架模式,即模型M,视图V和模版T.它最初是被开发来用于管理劳伦斯出版集团 ...