漫步最优化四——约束

2024-05-08 15:48
文章标签 约束 最优化 漫步

本文主要是介绍漫步最优化四——约束,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!






——

在许多优化问题中,变量之间是相互关联的,比如质量或能量守恒定律,基尔霍夫电压与电流定律,以及其他一些的方程组。从效果上看,如下所示的等式形式:

ai(x)=0for xEn

其中 i=1,2,,p ,在求解问题之前,必须满足。在其他优化问题中,变量或参数上会强加一些不等式约束,从而确保实际性,可靠性,兼容性或者简化问题,例如电路中电流超过给定的上限,那么能耗就会急剧增加或者电路中电流低于某个下限,系统会不稳定等等,对于这种问题,下面的不等式形式:

cj(x)0for xEn

其中 j=1,2,,q ,在求解问题之前,必须满足。

优化问题可能包含一系列等式约束与不等式约束,对于这种情况,我们称该问题为约束优化问题,大部分约束优化问题数学上表示为:

minimizef(x)for xEnsubject to: ai(x)=0for i=1,2,,pcj(x)0for j=1,2,,q

不包含等式与不等式约束的问题称为无约束优化问题。

直觉上约束优化问题比无约束优化问题难,所以目前目前对约束优化问题的研究策略就是将其重写成无约束优化问题,通过重定义目标函数,使得最小化目标函数的同时满足约束条件就能实现,如下面的例子所示。

1 q1,q2,,qm 表示某公司 m 个工厂产出的同一产品量,他们位于不同的地方。这些产品被送到n个零售商那里,分别需要的量为 b1,b2,,bn ,假设从 i 工厂到j零售商那里的单位运运送成本为 cij ,其中 i=1,2,,m j=1,2,,n ,那么找出从 i 场到j零售商最小的 xij ,即

minimize C=i=1mj=1ncijxij

这就是运输问题,现在讲起表示成优化问题。

需要注意到变量 xij 上是有约束的。首先,每个工厂生产的量是一定的,因此

j=1nxij=qifor i=1,2,,m

其次,零售商收到的总量也是一定的

i=1mxij=bjfor j=1,2,,n

另外, xij 是非负的,所以

xij>0for i=1,2,,mandj=1,2,,n

如果令

c=[c11 c1n c21 c2n cm1  cmn]Tx=[x11 x1n x21 x2n xm1  xmn]Tb=[q1  qm b1  bn]T


这里写图片描述

那么最小化问题可以写成
minimize C=cTxsubjectto: Ax=bx0

其中 cTx c,x 的内积,因为目标函数与约束均是线性的,所有该问题称为线性规划(LP)问题。

这篇关于漫步最优化四——约束的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/970749

相关文章

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

poj 3159 (spfa差分约束最短路) poj 1201

poj 3159: 题意: 每次给出b比a多不多于c个糖果,求n最多比1多多少个糖果。 解析: 差分约束。 这个博客讲差分约束讲的比较好: http://www.cnblogs.com/void/archive/2011/08/26/2153928.html 套个spfa。 代码: #include <iostream>#include <cstdio>#i

poj 3169 spfa 差分约束

题意: 给n只牛,这些牛有些关系。 ml个关系:fr 与 to 牛间的距离要小于等于 cost。 md个关系:fr 与 to 牛间的距离要大于等于 cost。 隐含关系: d[ i ] <= d[ i + 1 ] 解析: 用以上关系建图,求1-n间最短路即可。 新学了一种建图的方法。。。。。。 代码: #include <iostream>#include

POJ 1364差分约束

给出n个变量,m个约束公式 Sa + Sa+1 + .... + Sa+b < ki or > ki ,叫你判断是否存在着解满足这m组约束公式。 Sa + Sa+1   +   .+ Sa+b =  Sum[a+b] - Sum[a-1]  . 注意加入源点n+1 。 public class Main {public static void main(Strin

创建表时添加约束

查询表中的约束信息: SHOW KEYS FROM 表名; 示例: 创建depts表包含department_id该列为主键自动增长,department_name列不允许重复,location_id列不允许有空值。 create table depts(department_id int primary key auto_increment,department_name varcha

非空约束(Not Null)

修改表添加非空约束 使用DDL语句添加非空约束 ALTER TABLE 表名 MODIFY 列名 类型 NOT NULL; 示例: 向emp表中的salary添加非空约束。 alter table emp modify salary float(8,2) not NULL; 删除非空约束 使用DDL语句删除非空约束 ALTER TABLE 表名 MODIFY 列名 类型 NULL;

机器学习模型中的因果关系:引入单调约束

单调约束是使机器学习模型可行的关键,但它们仍未被广泛使用欢迎来到雲闪世界。 碳ausality 正在迅速成为每个数据科学家工具包中必不可少的组成部分。 这是有充分理由的。 事实上,因果模型在商业中具有很高的价值,因为它们为“假设”情景提供了更可靠的估计,特别是在用于做出影响业务结果的决策时。 在本文中,我将展示如何通过简单的更改(实际上添加一行代码)将传统的 ML 模型(如随机森林、L

javaweb-day01-3(XML 的 dtd 约束)

XML 的约束方式有两种:dtd 和 schema  DTD约束: Document Type Definition    文档类型定义、文档类型界定。 入门示例: book.xml : <?xml version="1.0" encoding="gb2312"?><!DOCTYPE 书架 SYSTEM "book.dtd"><书架><书><书名>J

oracle2之约束

《1》子查询和关联查询 建立表如下: 学生基本信息表 CREATE Student( [Studentid][Int]IDENTITY(1,1)NOT NULL primary key,--主键 [StudentName][char]NOT NULL ) 课程信息表 CREATE Subject( [SubjectID][char]NOT NUL

Leetcode3258. 统计满足 K 约束的子字符串数量 I

Every day a Leetcode 题目来源:3258. 统计满足 K 约束的子字符串数量 I 解法1:暴力 暴力枚举每一个子字符串,看是否满足 k 约束。 代码: /** @lc app=leetcode.cn id=3258 lang=cpp** [3258] 统计满足 K 约束的子字符串数量 I*/// @lc code=startclass Solution{publ