当前位置: 首页 > news >正文

python算术表达式遗传算法

import random
import operator
import math# 定义可能的运算符和操作
ops = {'+': '+','-': '-','*': '*','/': '/','sin': 'math.sin','cos': 'math.cos'
}# 随机生成一个表达式(个体)
def generate_expression(depth=0):if depth > 2:  # 限制表达式的最大深度return str(random.uniform(1, 10))op = random.choice(list(ops.keys()))if op in ['sin', 'cos']:return f"{ops[op]}({generate_expression(depth + 1)})"else:return f"({generate_expression(depth + 1)} {ops[op]} {generate_expression(depth + 1)})"# 评估表达式的适应度
def evaluate_expression(expression):try:return eval(expression)except ZeroDivisionError:return float('inf')  # 避免除以零except Exception as e:return float('inf')  # 处理其他可能的错误# 交叉(将两个表达式合并产生新的个体)
def crossover(expr1, expr2):point = random.randint(0, min(len(expr1), len(expr2)) - 1)return expr1[:point] + expr2[point:]# 变异(随机修改表达式的一部分)
def mutate(expression):return generate_expression() if random.random() < 0.1 else expression# 进化
def evolve(population, generations=100):for _ in range(generations):# 计算适应度fitness = [(evaluate_expression(expr), expr) for expr in population]fitness.sort()# 选择适应度最好的部分作为父代parents = [expr for _, expr in fitness[:len(fitness)//2]]# 生成新的种群population = []while len(population) < len(fitness):parent1, parent2 = random.sample(parents, 2)child = crossover(parent1, parent2)child = mutate(child)population.append(child)# 输出当前最佳表达式和适应度best_expr = fitness[0][1]best_fitness = fitness[0][0]print(f"Best Expression: {best_expr} | Fitness: {best_fitness}")# 初始化种群
population = [generate_expression() for _ in range(20)]
evolve(population)

相关文章:

python算术表达式遗传算法

import random import operator import math# 定义可能的运算符和操作 ops {: ,-: -,*: *,/: /,sin: math.sin,cos: math.cos }# 随机生成一个表达式&#xff08;个体&#xff09; def generate_expression(depth0):if depth > 2: # 限制表达式的最大深度return str(rando…...

net.sf.jsqlparser.statement.select.SelectItem

今天一启动项目&#xff0c;出现了这个错误&#xff0c;仔细想了想&#xff0c;应该是昨天合并代码&#xff0c;导致的mybatis-plus版本冲突&#xff0c;以及分页PageHelper版本不兼容 可以看见这个我是最下边的 Caused by 报错信息&#xff0c;这个地方提示我 net .s…...

lua匹配MAC地址 正则表达式

LUA的正则表达式匹配很弱智&#xff0c;能不用lua就不要用lua。 %x表示十六进制数值 (%x%x):(%x%x):(%x%x):(%x%x):(%x%x):(%x%x)它不允许这样用&#xff1a; ((%x%x):){5}(%x%x)mac这还算好办&#xff0c;ipv4就难了&#xff0c;ipv6不可能&#xff0c;这样写下来那一串表达…...

Chainlit快速实现AI对话应用并将聊天数据的AWS S3 和 Azure Blob云服务中

自定义数据层 Literal AI 提供了最简单的方法来保存、分析和监控您的数据。 如果您正在考虑实现自定义数据层,请查看此处的示例以获取一些启发。 此外,我们非常希望看到社区主导的开源数据层实现并将其列在这里。如果您有兴趣做出贡献,请通过 Discord 与我们联系。 您需…...

浅谈性能优化(基于C++)

本文主要针对C的性能优化方法展开讨论。虽然这些方法也适用于一些其他语言&#xff0c;但由于C经常用于底层操作&#xff0c;提供了更多的优化空间&#xff1b;相比之下&#xff0c;诸如Python、Kotlin等高级语言由于其抽象程度更高&#xff0c;优化空间较少。 性能优化原理 …...

Python 报错:ModuleNotFoundError: No module named ‘Crypto‘

Crypto报错解决方案 Python 报错&#xff1a;ModuleNotFoundError: No module named Crypto前言问题解决方案 Python 报错&#xff1a;ModuleNotFoundError: No module named ‘Crypto’ 前言 Crypto是一个加密模块&#xff0c;它包含了多种加密算法&#xff0c;如 AES、DES、…...

UE(User Equipment) 和 UA(User Agent)

UE&#xff08;User Equipment&#xff09; UE 是 用户设备&#xff0c;这是一个泛指的术语&#xff0c;涵盖了所有类型的终端设备&#xff0c;例如手机、电脑、平板、智能手表等。这些设备可以连接到网络并进行通信。UE可以包含多种功能&#xff0c;包括对话&#xff08;语音…...

视觉SLAM ch3补充——在Linux中配置VScode以及CMakeLists如何添加Eigen库

ch3中的所有代码&#xff0c;除了在kdevelop中运行&#xff0c;还可以在VScode中运行。下面将简要演示配置过程&#xff0c;代码不再做解答&#xff0c;详细内容在下面的文章中。&#xff08;这一节中的pangolin由于安装过程中会出现很多问题&#xff0c;且后续内容用不到该平台…...

开关电源:优化电子产品中的能源使用

电压转换器是许多技术系统的支柱。根据应用的不同&#xff0c;所需的电源单元由变压器、整流器 AC/DC 转换器实现。当高性能开关电源尚未上市时&#xff0c;几乎只使用 50 Hz 变压器解决方案。 电源注意事项 电能几乎完全以三相电流的形式提供&#xff0c;系统电压为 10 ...3…...

Java语言程序设计——篇十三(2)

&#x1f33f;&#x1f33f;&#x1f33f;跟随博主脚步&#xff0c;从这里开始→博主主页&#x1f33f;&#x1f33f;&#x1f33f; 欢迎大家&#xff1a;这里是我的学习笔记、总结知识的地方&#xff0c;喜欢的话请三连&#xff0c;有问题可以私信&#x1f333;&#x1f333;&…...

python结合csv和正则实现条件筛选数据统计分数

前景提要&#xff1a; 有一个项目的数值和员工统计的对不上&#xff0c;如果一页一页翻找自己手动算&#xff0c;一个就有16、7页&#xff0c; 功能实现 1、创建csv文件 需要将每一个模块的所有数据头提取出来&#xff0c;这个可以直接用爬虫或者手工复制出来&#xff0c;因…...

Ubuntu系统的基础操作和使用|Linux|安装|网络连接|更新与升级系统|系统维护|故障排除|监控|桌面环境|虚拟机|快捷键

目录 1. Ubuntu系统的安装与初步设置 1.1 下载与安装Ubuntu 1.2 创建用户和设置密码 1.3 配置网络连接 1.4 更新与升级系统 2. Ubuntu的基本操作 2.1 文件与目录管理 2.2 系统进程管理 2.3 软件安装与管理 2.4 权限与用户管理 3. 系统维护与故障排除 3.1 系统日志查…...

day 38

2824.统计和小于目标的下标对数目 int countPairs(int* nums, int numsSize, int target){int x0;for(int i0;i<numsSize;i){for(int ji1;j<numsSize;j){if(nums[i]nums[j]<target){x;}}}return x; }2951.找出峰值 int* findPeaks(int* mountain, int mountainSize,…...

352532

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…...

Day.38 | 1143.最长公共子序列 1035.不相交的线 53.最大子序和 392.判断子序列

1143.最长公共子序列 要点&#xff1a;dp[i][j] dp[i - 1][j - 1] 1; dp[i][j] max(dp[i - 1][j], dp[i][j - 1]); class Solution { public:int longestCommonSubsequence(string text1, string text2) {vector<vector<int>> dp(text1.size() 1, vector<…...

pytorch 3 计算图

计算图结构 分析&#xff1a; 起始节点 ab 5 - 3ac 2b 3d 5b 6e 7c d^2f 2e最终输出 g 3f - o&#xff08;其中 o 是另一个输入&#xff09; 前向传播 前向传播按照上述顺序计算每个节点的值。 反向传播过程 反向传播的目标是计算损失函数&#xff08;这里假设为…...

一文吃透:暗水印是什么?企业防泄密可以加暗水印吗?

设计部主管&#xff1a;昨天下班的时候我在办公室捡到一张文件&#xff0c;上面可是我们最新产品的设计草稿&#xff0c;严禁打印的&#xff0c;到底是谁干的&#xff1f; 员工&#xff1a;办公室没有监控&#xff0c;似乎很难查到哦。 网络部经理&#xff1a;不用担心&#…...

Ajax-02.Axios

Axios入门 1.引入Axios的js文件 <script src"js/axios-0.18.0.js"></script> Axios 请求方式别名: axios.get(url[,config]) axios.delete(url[,config]) axios.post(url[,data[,config]]) axios.put(url[,data[,config]]) 发送GET/POST请求 axios.get…...

NodeJS的核心配置文件package.json和package.lock.json详解

package.json 文件 package.json 文件是 Node.js 项目的核心配置文件&#xff0c;它包含了项目的基本信息、依赖关系以及一些脚本命令等。以下是 package.json 文件的主要字段说明&#xff1a; name&#xff1a;项目的名称&#xff0c;必须是小写&#xff0c;可以包含字母、数…...

开源数据采集和跟踪系统:助力营销决策的关键工具

开源数据采集和跟踪系统&#xff1a;助力营销决策的关键工具 在现代营销中&#xff0c;数据是最重要的资产之一。了解用户行为、优化广告效果、提升转化率&#xff0c;这一切都离不开精准的数据分析。为了帮助商家更好地掌握这些数据&#xff0c;市场上出现了许多开源的数据采…...

文档下载工具:突破平台限制的高效获取策略与零成本解决方案

文档下载工具&#xff1a;突破平台限制的高效获取策略与零成本解决方案 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;该脚本就是…...

3分钟搞定Vue时间轴组件:打造优雅时间线应用的终极指南

3分钟搞定Vue时间轴组件&#xff1a;打造优雅时间线应用的终极指南 【免费下载链接】timeline-vuejs Minimalist Timeline ⏳ with VueJS &#x1f49a; 项目地址: https://gitcode.com/gh_mirrors/ti/timeline-vuejs 还在为Vue项目中的时间线展示而烦恼吗&#xff1f;t…...

Python WASM部署避坑手册(27个真实故障现场还原)

第一章&#xff1a;Python WASM部署的演进脉络与技术边界WebAssembly&#xff08;WASM&#xff09;最初为C/C/Rust等系统语言设计&#xff0c;其确定性执行模型与接近原生的性能使其迅速成为浏览器端高性能计算的事实标准。Python作为动态、解释型、依赖运行时的高级语言&#…...

ROS2数据录制实战:手把手教你用ros2 bag记录Duckiebot图像数据(附常见错误排查)

ROS2数据录制实战&#xff1a;从Duckiebot仿真到真实场景的全流程指南 在机器人开发过程中&#xff0c;数据记录与分析是算法验证和系统调试的关键环节。ROS2提供的ros2 bag工具链为开发者提供了强大的数据采集能力&#xff0c;但实际应用中往往会遇到各种意料之外的问题。本文…...

职场“对错陷阱“:为什么你越是讲理,领导越不待见你?

导语&#xff1a;小时候老师教我们"明辨是非"&#xff0c;长大后却发现——在职场里太较真的人&#xff0c;往往混得最差。一、拍桌子的代价2023年春天&#xff0c;我亲眼看见林哥在会议室拍了桌子。"这需求根本不合理&#xff01;数据库设计违反第三范式&#…...

M.2 SSD硬件电路设计实战:从接口规范到高速信号布局

1. M.2 SSD硬件设计入门&#xff1a;从接口规范说起 第一次接触M.2 SSD设计时&#xff0c;我被各种接口类型和协议搞得晕头转向。现在回想起来&#xff0c;其实只要抓住几个关键点就能快速上手。M.2接口作为Intel推出的新一代存储标准&#xff0c;已经全面取代了老旧的mSATA接口…...

Cursor+Qt5.12.12开发环境配置全攻略:从插件安装到项目构建

CursorQt5.12.12开发环境配置全攻略&#xff1a;从插件安装到项目构建 对于刚接触Qt开发或从其他IDE迁移到Cursor的开发者来说&#xff0c;配置一个高效的开发环境是首要任务。Qt5.12.12作为长期支持版本(LTS)&#xff0c;在稳定性和兼容性方面表现优异&#xff0c;而Cursor作为…...

美军“转正”美科技公司AI系统,专家解读

来源&#xff1a;环球时报【环球时报报道 记者 刘扬】据路透社等外媒近日报道&#xff0c;五角大楼将把美国科技公司Palantir的人工智能&#xff08;AI&#xff09;系统Maven列为“正式在编项目”&#xff0c;使美军多军种将该公司的相关技术用于军事领域。五角大楼强调&#x…...

Frida安装后别急着‘玩’!这5个必做的环境验证与排错步骤你做了吗?

Frida安装后必做的5个环境验证与排错步骤 当你兴冲冲地按照教程安装完Frida和Server&#xff0c;准备开始"玩耍"时&#xff0c;却发现frida-ps -U毫无反应&#xff0c;或者遇到各种连接失败的问题。这种"安装成功却用不了"的尴尬&#xff0c;往往源于环境…...

XC泰山服务器麒麟V10系统安装全流程解析

1. 准备工作&#xff1a;了解XC泰山服务器与麒麟V10系统 在开始安装之前&#xff0c;我们需要先了解一下XC泰山服务器和麒麟V10操作系统的基本情况。XC泰山服务器是国内自主研发的高性能服务器&#xff0c;采用ARM架构处理器&#xff0c;具有高性能、低功耗的特点。而麒麟V10则…...