优化题型整理

连续:(决策变量可以在某个范围内取任意实数值)离散:(不连续)

  1. 线性规划模型
  2. 非线性规划模型
  3. 整数规划模型(线性非线性:0-1规划模型、运输模型、网络流模型、调度问题、选址问题、项目选择、最短路径问题、旅行商问题、贪心算法、图论问题)
  4. 混合整数规划模型(某些决策变量取整数值,而其他决策变量可以取连续值)

启发式算法

也有一种方式(在某本书上看见的): 

 例题

(一些自己的小白的,新手的,不成熟的,完全做笔记来着的笔记,后面就可以不必看了)

一、2024华数杯C题

2024华数杯C题——要求50个城市,已知城市之间的距离S,城市通过高铁贯通,高铁速度300km/h,高铁费用0.5km/人公里,城市游玩费用A,城市游玩时间B,城市综合评价C, 要求时间限制在144小时内,要求旅游的城市尽可能多,旅游城市综合评价尽可能高,规定了初始城市为广州。

是一道单约束双目标规划题目,有点像旅行商问题,但是“旅游的城市尽可能多”说明了不可能把所有城市逛完,即不能预设旅行了多少城市,得像蚂蚁闯迷宫一样一次次试这个城市行不行或者枚举。

先通过线性加权法将多目标转为单目标。

“有点像旅行商问题”——旅行商问题(一个售货员必须访问n个城市,恰好访问每个城市一次,并最终回到出发城市。)除了回到初始位置,和不能走完全部城市,非常相似!

“不能预设旅行了多少城市”——不能使用遗传算法,(可能可以,但我不会)因为不能预设初始种群。其他的启发式算法能用吗?至少蚁群和粒子群好像需要预设。(我发现,模拟退火好像……可以期待一下,但是我不会哈哈)

“得像蚂蚁闯迷宫一样一次次试这个城市行不行或者枚举。”——贪心算法(每一步都做出在当前看来是最好的选择,以此来寻找全局最优解。这种方法简单直观,但在某些情况下可能无法得到最优解。)——那么原本的最短路径转化为目标函数成为每个城市的权重。

“单约束双目标规划题目”——很显然,如果可以使用非线性规划也是选择——但我不知道选择的顺序,因此不能计算目标函数的旅行时间和费用,除非我选择50*50的决策变量——好多(T-T)。

1,旅行商问题

一个售货员必须访问n个城市,恰好访问每个城市一次,并最终回到出发城市。

动态规划:A出发,找到最短距离B,则下一步就是从B到其他点(除开AB)的最短距离,就是最优子结构。复杂度O(2^N*N^2),问题规模即使是50就不能做到。

贪心算法:从A一步步试探出去,每次最短路径,并且始终不用返回往前走。复杂度O(n^2),但找到的是局部最优解。思路和生成最小生成树的思路一样,由于是完全图稠密图,所以使用prim算法更好。以TSP为例,假设我们有四个城市 A、B、C 和 D。假设从城市 A 开始,贪心算法会选择距离 A 最近的城市 B,然后是 C,最后是 D。这样形成的路径可能是 A → B → C → D → A。但是,如果存在一种更好的路径顺序,比如 A → D → B → C → A,只是 A → D 距离稍微长了一点,贪心算法就不会发现这条更优的路径。

2,贪心算法

经典:Dijkstra算法和Prim算法、Kruskal算法

Dijkstra算法(A点到其他每个点的最短路径):选择A延申的最短距离(假设链接B),确定AB最短距离,更新A到其他点的最短距离,然后再选择一个最短距离,例如C点,确认AC,以此往复,确认A到所有点的最短距离。(可以找其他人的博客看看,有很详细的解释)

Prim算法(选择图上最短的树)(不一定能一次性走完):选择A延申的最短距离(假设链接B),则AB为一体,再选择延申出去最短距离,直到遍历所有点。

Kruskal算法(同上):选择图上最短的边,不能形成圈,遍历所有点为止。

以上都不能用,但Prim算法很符合我们这题,延申出去的想法,只要记得每次只能从A点延申。

3,解决办法

使用旅行商贪心算法,此外在这道题里,出于不保证找到全局最优解,但能够在有限时间内找到一个接近最优解的方法——也可以称为启发式算法。

二、2023国赛C题

问题2:补货蔬菜品类,(已知过去携带时间的销售量、单价、批发价、退货,已知恒定的损耗率),要求得到定价与销售量的关系,给出未来一周品类的补货计划和定价策略,使收益最大。

这个问题可以拆解成三个小问题:

1、通过过去数年的销售量和单价和退货详情,得到定价与销售量的关系。

2、预测未来一周我们需要的数据。

3、给出未来一周品类的补货计划和定价策略,使收益最大。

第一个问题,数量关系的求解可以通过拟合插值来得到函数,两个定量数据也可以通过相关系数求解。

第二个问题,服务于第三个问题,假设已知未来数据,规划收益最大(销售量*定价-成本—>假设补货-损耗=销售—>销售量*定价-损耗a和销售量*批发价s),销售量和定价还有关系。这里要求给出未来一周品类的补货计划和定价策略,也就是说补货(损耗+销售量)是我们要决策的变量,定价和销售量有关系——>销售量是决策变量X。那么目标函数变为max;X*F(X)-(a+X)*s,损耗a恒定,批发价s是我们要预测的。

第三个问题,规划问题,决策变量为各品类销售量X(这里是X1,X2,X3等的矩阵,其他字符亦同),目标函数为max;X*F(X)-(a+X)*s,(F,a,s已知),决策变量连续,限制在过去补货的maxmin之间,F是约束也是限制(限制在过往的定价里,这是一个容易忘记的点,记得审查所有的数据用到没有,是否还有未知的限制)。属于单目标线性规划问题

问题3:补货蔬菜单品,(已知过去携带时间的销售量、单价、批发价、退货,已知恒定的损耗率),要求可售单品总数控制在27-33个,且各单品订购量满足最小陈列量2.5千克的要求。根据2023年6月24-30日的可售品种,给出7月1日的单品补货量和定价策略,在尽量满足市场对各品类蔬菜商品需求的前提下,使得商超收益最大。

是上题的变体,从品类变为单品,先预测未来一日的批发价,我们仍然设各销售量X,目标函数为max;X*F(X)-(a+X)*s,(F定价,a损耗,s批发价已知),决策变量连续,限制在过去补货的maxmin之间,F是约束也是限制(限制在过往的定价里,这是一个容易忘记的点,记得审查所有的数据用到没有,是否还有未知的限制),此外订购量满足最小陈列量2.5千克的要求,即X+a约束,可售单品总数控制在27-33个,即对于每个单品再增加0-1决策变量A,总和约束。尽量满足市场对各品类蔬菜商品需求即目标函数要求A对应的品类B应该尽量多(对应每个B的A相乘为1)。这是双目标线性规划,应该使用线性加权或约束或其他方法转变为单目标规划。

注意日期——这段时间的单品可售品种为49个左右——决策变量不算多。(累)

这类规划问题,可以使用简单的求解,配合启发式算法比较。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值