投石机的AI驱动工程优化,第1部分

遗传算法(GA)是我们最喜欢的工具之一 解决的分析 。我禁不住认为,对于工程师来说,它们是一种未被重视和利用不足的资源。 如果你看看 维基百科关于遗传算法的页面 您会很快理解为什么我们对它们的使用了解很少。 该材料是干燥的,对于不熟悉数学运算研究并且缺乏实际环境的人来说很难遵循。 诸如“元论”,“位数组”和“染色体表示”之类的术语使潜在学习者无法访问GA。 希望这一系列的帖子可以从一个简单,易于遵循的用例开始,并从那里构建,从而使GA神秘化并鼓励其使用。

投石机!

每个人都知道投石机是什么,对吗?  如果不这样做,您应该知道这是一台复合机,仅用重力就可以在敌人的城堡上扔下沉重的石头,死马,燃烧的肥料甚至钢琴。 

“关键不是你逃跑的东西,而是逃跑本身。” 克里斯·史蒂文斯(Chris Stevens)–北方曝光
</iframe>" data-provider-name="YouTube">

我们将从一个简单的设计优化问题开始,然后从那里开始构建。 我们的最初设计是针对跷跷板式投石机,其配重牢固地连接至杠杆臂,并且未使用任何吊索机构。 配重上升然后下降,从而使位于手臂另一端的弹丸加速,并在配重撞击地球时将其发射。 最初的目标是在遵守所有设计约束的同时实现最大飞行距离。 这个距离我们称为 目标函数 . 我们解决方案空间的独立参数包括配重,射弹臂的长度和初始角度以及枢轴仰角,如下图所示。

 特雷布切特

遗传算法!

遗传算法具有广泛的潜在用途,并且广泛用于计算生物学,金融,物流和电力电子等领域。 它们是受生物进化启发的迭代算法的一个实例,可以迭代地搜索所有类型的数学问题的最优解。 遗传算法的工作原理是,通过与诸如复制,变异和选择之类的进化功能进行类比,迭代地将一组可能的解决方案(集合)转化为优化问题。 一幅画讲一千卷。  

遗传算法流程图,每个个体有5个基因,每代9个基因组,第3代。 

对一组基因特征的初始集合进行评估并进行“适应性”排序,即该特征集如何解决问题,然后通过以下机制转化为第二代:

  • 一定数量的精英人士幸存下来
  • 设定数量的父母以随机方式育儿
  • 设定数量的儿童存活而无突变
  • 根据每组突变的设定点数,儿童的设定点数经历突变

然后,对第三代及以后的子代重复进行评估,分类和演变的过程。 当您仔细阅读有关优化问题和遗传算法的初始说明时,我们将在以后的文章中准备工作:

  • 第2部分: 详细的方程式和GA实施结果
  • 第3部分: 与其他优化算法的结果比较
  • 第4部分: 扩展模型以包括其他物理和多个目标
  • 第5部分: 扩展模型以包括吊索动力学和Matlab实现

同时,请确保 使那些燃烧的弹丸与茅草屋顶的历史建筑保持安全距离! 请继续关注,并感谢您的阅读。