五、约束编程求解优化问题

news2024/11/25 7:37:27

文章目录

  • 1、瑶草问题-离散优化问题
  • 2、重试优化
  • 3、分支限界法-改进重试优化法
  • 4、重启式搜索
    • 4.1 重启方针/策略
    • 4.2 自动化搜索策略
  • THE END

1、瑶草问题-离散优化问题

\qquad 要求在一个建木上构建一个完整的分枝树,每一个完整的分枝有100段,完整分枝上的每一段树段都要用一份神队用户培育。
\qquad 当前手头有100中不同特性的神水,可以培育不同数量的树段分枝;在每一个树段都有特定数量的树叶,都需要特定分量的养分。
\qquad 若要求在某个完整分枝顶端长出一支瑶草,需要满足养分充足的约束和区间数量数量的约束。目标是求最好的瑶草,使得分支中的数量数量最多。

2、重试优化

\qquad 约束编程求解器没有很巧妙的对离散优化问题进行优化,当找到一个解,约束编程即对问题进行重新搜索,去搜索一个更好的解。如果求解一个最大化问题,重试优化算法的流程如下图所示:
在这里插入图片描述

3、分支限界法-改进重试优化法

KaTeX parse error: Undefined control sequence: \qqua at position 1: \̲q̲q̲u̲a̲ 在约束编程进行搜索的过程中,在搜索到一个新的解方案时,比较新的解方案和当前最优解方案之间的优劣,保留最优解,同时更新最优解的目标值下界约束,而不是添加一个新的最优解目标值下界约束后对解空间重新进行搜索。
\qquad 分枝限界法相对于重试优化法来说减少了不必要的冗余搜索,从而可以提高求解效率。越早找到一个高质量的解可以辅助剪枝,缩小解空间。
\qquad 在约束编程中,搜索的顺序至关重要,在搜索时可以先注重重要的变量(对目标函数影响较大的变量),对此类变量进行优先搜索,可以更早找到高质量的解方案。

4、重启式搜索

\qquad 在搜索的过程中,一个早期错误的决策可能导致非常严重的搜索效率的降低,重启搜索可以克服重尾现象。
\qquad 重启式搜索时简单有效的方法。重启搜索规定在一定量的资源消耗之后,从最早的地方重启搜索,通常以搜索量(资源)为指标,例如被访问的或者回溯的节点数量。在重启之后随后的搜索中,采用不一样的搜索,例如引入随机化或者从之前运行的过程中收集、学习和积累经验。

4.1 重启方针/策略

\qquad 常量级重启,每次重启之后记录资源使用量,在使用 L L L单位资源之后重启搜索
\qquad 几何级重启,设定一个乘子 α \alpha α,在使用 L L L单位资源之后,新的重启资源限制设置为 α L \alpha L αL,依次类推,这样每次重启之后的资源都会增加 α \alpha α倍,因此叫做几何级重启。
\qquad Luby序列重启,Luby序列如下所示:
在这里插入图片描述
\qquad Luby序列重启对于随机算法来说通常是最佳的,与最佳策略相比也只会有不多余对数级别(log)的差异;与其他常用策略相比,即使较差,也不会有超过常数级别的差异。

4.2 自动化搜索策略

\qquad 自动化搜索策略是一个在约束编程里面高度活跃的研究领域,自动化搜索策略包括:dom_w_deg, impact 和 activity等。
在这里插入图片描述

THE END

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

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

相关文章

2023年《开学第一课》播出时间是什么时候?开学第一课怎么在手机上观看高清直播?

2023年《开学第一课》播出时间是什么时候? 根据往年《开学第一课》播出时间预计2023年《开学第一课》播出时间是2023年9月1日20:00,如有变化请以官方公布为准; 2023年开学第一课怎么在手机上观看高清直播? 1、打开手机微信&…

第三章,矩阵,07-用初等变换求逆矩阵、矩阵的LU分解

第三章,矩阵,07-用初等变换求逆矩阵、矩阵的LU分解 一个基本的方法求 A − 1 B A^{-1}B A−1BLU分解例1,求矩阵A的LU分解:例12,LU分解解线性方程组: 玩转线性代数(19)初等矩阵与初等变换的相关应用的笔记&a…

Rx.NET in Action 第一章学习笔记

Part 1 初入反应式扩展 什么是反应式程序?它们有什么用?使用反应式扩展(Rx)编程,会如何改变你编写代码的方式?在开始使用 Rx 之前应该做些什么?为什么 Rx 比传统的事件驱动编程更好&#xff1f…

简单认识Zabbix监控系统及配置

文章目录 一、zabbix概述1、定义2、zabbix监控原理3、监控对象4、zabbix的3种架构(1) C/S架构(2)分布式架构:zabbix-proxy-client架构(3) master-node-client架构 5、zabbix监控模式 二、部署za…

Apollo Planning2.0决策规划算法代码详细解析 (1):环境搭建

背景: apollo开源团队近期更新了planning版本,对代码进行了一定程度上的重构。 重构后代码结构更加清晰,对扩展更为友好;此外,也更新了dreamview对pnc的支持,使得调试更加方便。 本教程将继续更新对于Apollo Planning2.0决策规划算法代码的详细解析,便于大家更好理解…

[鹏城杯 2022]简单包含

直接用php:// 有wtf 加脏数据绕过

Spring boot中的线程池-ThreadPoolTaskExecutor

一、jdk的阻塞队列: 二、Spring boot工程的有哪些阻塞队列呢? 1、默认注入的ThreadPoolTaskExecutor 视频解说: 线程池篇-springboot项目中的service层里简单注入ThreadPoolTaskExecutor并且使用_哔哩哔哩_bilibili 程序代码:…

Impala实践:解析glog打印的 C++ 报错堆栈

Impala实践:解析glog打印的 C 报错堆栈 Impala使用glog生成日志。生产环境用的都是release build,glog产生的报错堆栈里没有函数名,很难像Java报错堆栈那样方便定位问题。下面是 Impalad 日志中的一个报错: I0522 09:07:16.0020…

浅复制和深复制(使用python)

在编程语言中,复制通常是通过赋值操作来实现的。具体实现方式可能因编程语言而异。 1. 浅复制(Shallow Copy) 浅复制是指创建一个新对象,新对象的内容是原始对象的引用。换句话说,新对象和原始对象共享相同的数据&am…

【JVM】JVM 调优的参数都有哪些?

文章目录 1. 设置堆空间大小2. 虚拟机栈的设置3. 年轻代中Eden区和两个Survivor区的大小比例4. 年轻代晋升老年代阈值5. 设置垃圾回收收集器 1. 设置堆空间大小 设置堆的初始大小和最大大小,为了防止垃圾收集器在初始大小、最大大小之间收缩堆而产生额外的时间&…

【Linux系统编程】21.echo、env、fork、getpid、getppid

目录 echo PATH SHELL TERM LANG HOME env fork 返回值 getpid getppid 测试代码1 测试结果 测试代码2 测试结果 父子进程相同 父子进程不同 父子进程共享 echo 查看单个环境变量。 PATH 可执行文件的搜索路径。 SHELL 当前Shell。 TERM 当前终端类型。终端…

一休休的面试题

重点面试题(今天又看了很多的博客大概有个三十来篇吧所以总结了一休休的面试题): ps:已经入秋了为什么还是这么热!!! 1、受管 bean 的生命周期 对于普通的 Java 对象,new 的时候会去创建对象,而当它没有…

Redis进阶(3)——在Linux上基于Docker容器Redis搭建一主二从三哨兵 SpringBoot整合Redis哨兵

目录 引出redis主从搭建:一主2从6389Master准备文件redis.confredis.log日志文件运行容器查看日志方式tail 6390Slave6391Slave 创建3哨兵创建文件夹sentinel创建运行哨兵容器问题:脑裂问题 SpringBoot整合Redis哨兵启动1主2从,3哨兵pom.xml文…

聊聊服务端缓存那些事(预热、淘汰、污染、雪崩、穿透、击穿等)

文章目录 概要一、缓存预热二、缓存污染2.1、先更新数据库再更新缓存2.2、先更新缓存再更新数据库2.3、先删除缓存再更新数据库,读时再更新2.4、先更新数据库再删除缓存,读时再更新2.5、缓存污染总结2.6、删除缓存失败了怎么办?2.7、延迟双删…

【数据结构与算法】十大经典排序算法-堆排序

🌟个人博客:www.hellocode.top 🏰Java知识导航:Java-Navigate 🔥CSDN:HelloCode. 🌞知乎:HelloCode 🌴掘金:HelloCode ⚡如有问题,欢迎指正&#…

JZ33二叉搜索树的后序遍历序列

题目地址:二叉搜索树的后序遍历序列_牛客题霸_牛客网 题目回顾: 解题思路: 使用栈 栈的特点是:先进后出。 通读题目后,我们可以得出,二叉搜索树是左子节点小于根节点,右子节点大于根节点。 …

wps设置一键标题字体和大小

参考 wps设置一键标题字体和大小:https://www.kafan.cn/A/7v5le1op3g.html 统一一键设置

[FPGA IP系列] 2分钟了解FPGA中的BRAM

FPGA设计中,BRAM是一项非常关键的内置存储资源,FPGA开发需要熟练使用BRAM,今天再复习一下BRAM的知识,包括BRAM的定义、组成、应用等等。 一、BRAM介绍 1、BRAM的定义 RAM是Random Access Memory,也就是随机访问数据…

C字符串练习题(6.3.1)

编写一个程序&#xff0c;从键盘上读入一个小于1000的正整数&#xff0c;然后创建并输出一个字符串&#xff0c;说明该整数的值。例如&#xff0c;输入941&#xff0c;程序产生的字符串是“Nine hundred and forty one”。 #include<stdlib.h> #include<string.h>…

【STM32】FreeRTOS互斥量学习

互斥量&#xff08;Mutex&#xff09; 互斥量又称互斥信号量&#xff08;本质也是一种信号量&#xff0c;不具备传递数据功能&#xff09;&#xff0c;是一种特殊的二值信号量&#xff0c;它和信号量不同的是&#xff0c;它支持互斥量所有权、递归访问以及防止优先级翻转的特性…