优化类问题建模解析

模型建立阶段

线性规划模型:目标函数和约束条件均为线性

整数规划或0-1规划:决策变量取值被限制为整数或0、1

动态优化模型:以时间为划分阶段的动态过程优化问题

非线性规划模型:目标函数或约束条件中包括非线性函数

多目标规划模型:目标函数不唯一,同时存在多个目标函数

模型求解阶段

基于梯度的求解算法:最速下降法、随机梯度下降、动量梯度下降、拟牛顿法

智能优化算法:粒子群算法、模拟退火、遗传算法

在数学中,一个优化问题有三个要素:决策变量目标函数约束条件。优化问题是指,在满足约束的情况下,调整决策变量,使得目标函数的值最小(或最大)。

解决优化问题的第一步就是需要找到目标函数,也就是找到“最优”;第二步需要寻找决策变量,也就是可以优化的变量,再通俗点就是我们可以控制并且使得目标函数更优的变量;第三步就是确定约束条件,在建模过程中比较难把握的就是约束条件,约束条件需要全面准确,否则会产生无穷多最优解或者没有最优解,另外约束条件往往是对现实条件的科学刻画,对约束条件的合理简化也是比赛是需要重点关注的地方。

优化问题的一般建模步骤:

1.确定决策变量;

2.用关于决策变量的函数表示目标,并确定是求极大还是极小;

3.明确约束条件,并用关于决策变量的数学语言表示;

4.根据变量的物理性质研究变量是否有非负性。

优化模型的精确求解算法

在无约束优化模型中,如果其目标函数是凸函数并且可导,我们可以考虑通过梯度下降法求解其精确解,随即设定初始解,每次都沿梯度方向进行迭代,直到导数取值足够小。

因为梯度方向即为目标函数下降最快的方向,因此梯度下降算法求解速度很快,并且精度很高,但容易陷入局部最优解,不能求解非凸问题。

所谓凸优化问题是指目标函数为凸函数且可行域为凸集,通俗来讲,就是目标函数在可行域范围内只有一个极值点,而非凸函数在可行域内存在无数个极值点,为了跳出局部最优解,找到全局最优解,出现了启发式搜索算法。

粒子群优化算法(PSO),它源于对鸟群捕食行为的研究。粒子群优化算法的基本核心是利用群体中的个体对信息的共享,从而使得整个群体的运动在问题求解空间中产生从无序到有序的演变过程,从而获得问题的最优解。

粒子群算法多用于决策变量为连续变量的优化问题,其收敛速度很快,但其跳出局部最优解的能力相对较弱。

遗传算法是模拟生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。其主要用于决策变量为离散变量的优化问题,比如整数规划、0-1规划等。其收敛速度相对较慢,但跳出局部最优解的能力较强。

模拟退火算法脱胎于自然界的物理过程,来源于固体退火原理,是一种基于概率的算法,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。

模拟退火算法相对来说,对决策变量类型没有约束,不管是连续变量还是离散变量都可以进行求解,且跳出局部最优解的能力很好,容易找到全局最优解,其缺点是只能单线程作业,不能展开大范围搜索,当决策变量维度较高时,算法收敛速度很慢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1333.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超高性能协议框架fury完爆protostuff(附性能测试对比)

简单介绍: 序列化框架是系统通信的基础组件,在大数据、AI 框架和云原生等分布式系统中广泛使用。当对象需要跨进程、跨语言、跨节点传输、持久化、状态读写、复制时,都需要进行序列化,其性能和易用性影响运行效率和开发效率。 Fury 是一个基于…

SSH服务(二十六)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 二、特点 三、身份验证机制 四、验证过程 五、加密机制 六、基本参数 ​七、 身份验证机制 八、基本操作 1. ssh 2. scp 3. sftp 4. 密钥对验证 总结 前…

人工智能商业变现途径,并介绍详细公司案列

目录 1. 推荐系统:2. 智能广告和营销:3. 聊天机器人和虚拟助手:4. 自动化和机器人化:5. 数据分析和预测:6. 机器视觉和图像识别:7. 金融科技(FinTech):8. 医疗诊断和健康…

m4a文件出现损坏应该如何修复?

M4A文件,也称为Apple Lossless Encoder,是一种类似于MP4文件的音频格式。它们之间唯一的区别是M4A文件里面没有视频。作为一个音频文件,它已被广泛使用,常用的Windows,Media Player,Mac quicktime和iTunes等…

【MongoDB实战】数据备份与恢复(部分迁移)

场景: 需求: 解决方案: 步骤: Stage 1:【生产环境】修改备份文件映射 Stage 2:【生产环境】重新构建mongodb Stage 3:【客户环境】修改备份文件映射,同 Stage 1 Stage 4&…

九五从零开始的运维之路(其二十)

[TOC](文章目录) 文章目录 前言一、LAMP是什么二、配置环境及安装1.配置yum源2.关闭防火墙、网络图形化工具及SElinux3.安装软件包 三、配置apache服务器内容四、启动服务五、访问验证总结 前言 本篇将简述的内容:Linux系统下的LAMP平台部署 基于discuz框架的论坛搭…

用WooCommerce创建一个多用户商城系统和多供应商市场

线上市场是下一波数字化商务。2020 年,超过60% 的线上支出是通过数字市场发生的。人们喜欢从市场上购物,因为它们使购物变得容易。出于同样的原因,企业喜欢通过它们进行销售。通过多用户商城系统和多供应商WooCommerce商城设置,每…

kafka接收外部接口的数据,并实现转发

目录 一、什么是kafka 二、kafka接收外部接口数据 三、kafka收到数据后转发 四、kafka总结 一、什么是kafka Kafka是一种分布式流式处理平台,最初由LinkedIn开发。它设计用于高吞吐量、低延迟的数据处理,能够处理大规模的实时数据流。Kafka采用发布…

gitee 使用

1.打开git bash 2.cd 进入到合适位置 3.git clone 项目 4.配置用户名和email(不然没法记录谁操作的) pycharm (ctrlk)

个人微信机器人开发

微信机器人的主要职责是为了帮助群主来进行微信社群的管理,微信机器人当前主要分为两种,一种是微信聊天机器人,还有一种是微信群管理机器人。 微信聊天机器人的主要职责是可以在群内聊天,从而提高微信群活跃度;微信群管…

【Ceph集群应用】CephFS文件系统之MDS接口详解

CephFS文件系统之MDS接口详解 1.创建CephFS文件系统MDS接口1.1 创建cephfs1.2 基于内核的客户端挂载1.3 基于fuse工具方式的客户端挂载 接上文基于ceph-deploy部署Ceph集群详解 1.创建CephFS文件系统MDS接口 服务端操作 (1)在admin管理节点创建mds服务…

Java打怪升级路线的相关知识

第一关:JavaSE阶段 1、计算机基础 2、java入门学习 3、java基础语法 4、流程控制和方法 5、数组 6、面向对象编程 7、异常 8、常用类 9、集合框架 10、IO 11、多线程 12、GUI编程 13、网络编程 14、注解与反射 15、JUC编程 16、JVM探究 17、23种设计模式 18、数据结构与算法 1…

PowerDesigner 数据库建模使用详解

目录 一、前言 二、PowerDesigner概述 2.1 PowerDesigner核心能力 2.1.1 集成多种建模能力 2.1.2 自动生产代码能力 2.1.3 强大的逆向工程能力 2.1.4 可扩展的企业库解决方案 2.2 PowerDesigner常用的几种模型 2.2.1 概念模型 2.2.2 逻辑数据模型 2.2.3 物理模型 2.2…

学习AJAX

AJAX 🚀 HTTP请求报文响应报文 🚄 express框架🚬 express基本使用 🚒 原生AJAX🚬 GET.HTML🚬 POST.HTML🚬 JSON.HTML🚬 nodemon工具可以帮助重启服务🚬 IE缓存问题&#…

ELK 企业级日志分析系统(四)

ELK 一、部署Kafka集群二、Kafka的命令行操作三、Kafka架构深入四、FilebeatKafkaELK部署 一、部署Kafka集群 1.下载安装包 官方下载地址:http://kafka.apache.org/downloads.html cd /opt wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.7.1/kafka_2…

铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【关于C++中----特殊类设计和单例模式】

文章目录 一、设计一个类,不能被拷贝1.1C98的实现方法及其弊端1.2 C11的实现方法 二、设计一个类,只能在堆上创建对象三、设计一个类,只能在栈上创建对象四、设计一个类,不能被继承五、设计一个类,只能创建一个对象(单…

Leecode316: 去除重复字母

下面这里使用有序map——TreeMap来实现Map接口,但是相对顺序是不能改变的!这样会使得后面的跑到前面去,所以有问题 最简单的思想肯定是暴力思想,就是从前往后寻找,一旦遇到存在的情况就. 重点在于明确两点&#xff1a…

【Docker】了解和使用Docker

文章底部有投票活动,赶快参与进来吧😃 相信大家在开发过程中都听说过 Docker 一词,至于 Docker 在开发中扮演的角色,估计好多人都说不上来,今天就让阿Q带大家一起揭开它神秘的面纱! 文章目录 什么是容器&a…

dolphinscheduler伪分布式安装

1、上传安装包 2、安装 #解压 重命名 [rootdatacollection conf]# cd /opt/modules/ [rootdatacollection modules]# tar -zxf apache-dolphinscheduler-2.0.6-bin.tar.gz -C /opt/installs/ [rootdatacollection modules]# cd ../installs/ [rootdatacollection installs]# m…