手术的最优化分配(5)——随机规划模型的上下界

上篇实现了随机规划模型后,这篇谈一谈如何收缩随机规划的解空间以加快求解速率。首先为了便于理解我们将手术分配的表格绘制出来:

X1=

X2=

X3=

X4=

y1

y2

y3

y4

y5

y6

y7

y8

y9

y10

加班时长

o11=

o12=

o13=

o14=

o21=

o22=

o23=

o24=

o33=

o32=

o33=

o34=

有颜色的格子是决策变量,随机规划的目的是找到一种分配方式,使得所有场景下的总成本最小,此时每种场景都对应着一种不同的加班方案。

首先,在确定性模型(DORA)中的打破对称性方法适用于随机规划版本,打破对称性详见“手术的最优化分配(2)——打破对称性的约束(Symmetry-Breaking Constraints) (qq.com)”。

手术室开放数的上下限

与“手术的最优化分配(3)——手术室开放数目上下限及手术分配的启发式算法 (qq.com)”中原理类似,随机规划模型中手术室开放的上下限为:

其中,\overline{d_i} (di上划线) 表示此时所有场景中每个d_i对应的最大取值,\underline{d_i} (di下划线)表示所有场景中d_i的最小取值,例如在上一章的例子中,十台手术三个场景,则第五行和第六行分别为此时的\overline{d_i}和\underline{d_i}:

d1210151148167149245235233229180
d213319911928313687235250258199
d312012318716724216321420723585
_di210199187283242245235250258199
di_1201231191671368721420722985

由于原理与确定模型中上下限基本类似,此处不再赘述。

目标函数(成本)的上下限

此时假设μi为第i台手术在所有场景下的平均值,例如上表中μ_1为(210+133+120)/ 3  =154.33,则此时总成本的上下限为:

不等式的左侧很好理解,c^f为开放一间手术室的固定成本,其他部分为开放手术室数目的下限,即此时假设开放最少的手术室且不带有任何加班,当然成本是最小的。

不等式的最右侧则可以理解为只开放一间手术室,且所有手术都在加班时完成,故而成本最大。

右侧的证明过程如下:

从(19)到(20)的主要思想为:任何场景下,仅开放一间手术室的成本都是最高的。假如在某场景下需要开2间以上的手术室,则只开放一间手术室会导致大量的加班;某场景下最优解只需要开放一间手术室,则成本等于开放一间手术室(什么废话文学?)。此时仅开放一间手术室的数学表示为

手术室开放数目的上限2

手术室开放数目的第二个上限为

证明过程如下:

根据目标函数z的表达式和上一部分推导出的目标函数上限,可写出下式:

此处m^*为最优的手术室开放数目,则不等式左边为成本的上限,右侧为最优的成本。红框内为加班成本x期望加班时长,为非负数​。所以不等式右侧减去一个非负数依然小于左侧。

将剩下的不等式左右两侧同时÷c^f,则可得出

即为U_s^2

将以上四个式子和打破对称性约束加入随机规划模型后,可以大大提高求解效率​。篇幅所限就不在这里展示了,从下一篇开始我们会进入文中真正的重头戏——鲁棒优化部分​。虽然我还没有学相关内容,但是敬请期待​!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
繁忙和不确定的交通状况加剧了全球数百万人的通勤体验。 在规划重要行程时,通勤者通常会在预期行程时长上增加额外的缓冲,以确保准时到达。 受此启发,我们提出了一种新的交通分配模型,该模型考虑了旅行时间的随机性。 当网络中存在不确定性时,我们的模型扩展了 Wardrop 竞争的传统模型。 重点是战略性规避风险的用户,他们在平均标准偏差 (mean-stdev) 目标中捕获旅行时间与其可变性之间的权衡,定义为平均旅行时间加上风险规避因子乘以旅行的标准偏差沿着一条路的时间。 我们考虑无穷小用户,导致非原子博弈,和原子用户,导致离散有限博弈。 我们建立表征均衡交通分配的条件,并找出它何时存在。 主要挑战来自用户的风险规避,因为 mean-stdev 目标是非凸和不可分的,这意味着路径不能被分割为边成本的总和。 因此,即使是单个用户的子问题——随机最短路径问题——也是一个非凸优化问题,其多项式时间算法是未知的。 反过来,具有随机旅行时间的交通分配模型的数学结构与确定性对应模型有着根本的不同。 特别是,均衡表征需要指数级的多个变量,网络中的每条路径一个,因为边缘流有多个可能的路径流分解,这些分解是不等价的。 因此,与传统的确定性设置相比,表征均衡和社会最优分配(最小化总用户成本)更具挑战性。 尽管如此,我们证明两者都可以通过仅具有多项式多条路径的表示进行编码。 最后,对于与边缘负载无关的不确定性参数的情况,我们表明,尽管均衡分配导致总用户成本高于社会最优的总用户成本,但它不高于确定性设置。 换句话说,除了策略性的用户行为之外,不确定性不会进一步降低系统性能。
贝叶斯优化算法是一种基于贝叶斯定理的优化算法,可以用于自动调参。其中,hyperopt是一个使用贝叶斯优化算法Python包,可以帮助我们自动调整模型的超参数。 使用hyperopt,我们需要定义一个目标函数,这个函数输入超参数的值,输出模型的评分。然后,我们可以使用hyperopt的fmin函数来最小化这个目标函数,以找到最佳的超参数组合。 下面是一个使用hyperopt调参的示例代码: ```python from hyperopt import fmin, tpe, hp from sklearn.datasets import load_iris from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import cross_val_score # 定义目标函数 def objective(params): # 超参数 n_estimators = params['n_estimators'] max_depth = params['max_depth'] min_samples_split = params['min_samples_split'] # 定义模型 clf = RandomForestClassifier(n_estimators=n_estimators, max_depth=max_depth, min_samples_split=min_samples_split) # 计算交叉验证得分 iris = load_iris() scores = cross_val_score(clf, iris.data, iris.target, cv=5) # 返回平均得分 return 1 - scores.mean() # 定义超参数搜索空间 space = { 'n_estimators': hp.choice('n_estimators', range(10, 1000)), 'max_depth': hp.choice('max_depth', range(1, 20)), 'min_samples_split': hp.choice('min_samples_split', range(2, 10)) } # 使用Tree-structured Parzen Estimator算法搜索最佳超参数 best = fmin(fn=objective, space=space, algo=tpe.suggest, max_evals=100) # 输出最佳超参数组合 print(best) ``` 在上面的代码中,我们定义了一个目标函数objective,它的输入是超参数的值,输出是模型的评分。然后,我们定义了超参数的搜索空间space,它包括n_estimators、max_depth和min_samples_split三个超参数。最后,我们使用Tree-structured Parzen Estimator算法搜索最佳超参数,最多进行100次迭代。 执行上述代码后,我们可以得到最佳的超参数组合,输出类似于{'max_depth': 4, 'min_samples_split': 8, 'n_estimators': 315}的结果。这个结果可以用于训练一个随机森林模型,并进行预测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值