24、多目标调度问题的近似算法与公平性探讨

多目标调度问题的近似算法与公平性探讨

1. MaxAndSum问题的天顶近似

在多目标调度问题中,MaxAndSum问题的两个目标都直接源自任务的完成时间。对于n个独立作业在m个处理器上的简单情况,最短处理时间(SPT)算法是完成时间总和的最优算法,而列表调度是最大完工时间的2 - 近似算法。由于SPT是一种列表调度算法,所以有$\sum C_{i}^{SPT} \leq \sum C_{i}^{ }$ 且 $C_{max}^{SPT} \leq 2C_{max}^{ }$,这表明SPT是MaxAndSum问题天顶解的(2, 1) - 近似算法。

不过,在涉及并行任务或存在释放时间等更复杂的问题中,这个简单结果并不成立,而且也无法从SPT算法推导出对最大完工时间有更好保证的算法。

Stein提出了一个框架,其主要思想是通过关注调度开始时的任务来优化完成时间总和,而最后一个任务则根据最大完工时间目标进行调度。具体步骤如下:
1. 假设有两个调度:$\sigma_{cmax}$ 是最大完工时间的 $\rho_{cmax}$ - 近似调度,$\sigma_{minsum}$ 是完成时间总和的 $\rho_{minsum}$ - 近似调度。
2. 设 $l = \alpha C_{\sigma_{cmax}}^{max}$,其中 $\alpha$ 是一个正常数。将任务划分为两个集合 $T = T_{minsum} \cup T_{cmax}$,如果任务 $t$ 在 $\sigma_{minsum}$ 中在 $l$ 之前完成,则 $t \in T_{minsum}$,否则 $t \in T_{cmax}$。
3. 首先根据 $\sigma_{minsum}$ 对 $T_{minsum}$ 中的任务进行调度(截断步骤),然后从时间 $l$ 开始,将 $T_{cmax}$ 中的任务追加到它们在 $\sigma_{cmax}$ 中执行的相同处理器上(组合步骤),得到调度 $\sigma$。

相关命题和推论如下:
- 命题9.1 :$\sigma$ 的最大完成时间有界:$C_{\sigma}^{max} \leq (1 + \alpha)\rho_{cmax}C_{max}^{ }$。
-
命题9.2 :$\sigma$ 的完成时间总和有界:$\sum C_{\sigma}^{i} \leq \frac{1 + \alpha}{\alpha} \rho_{minsum} \sum C_{i}^{ }$。
- 推论9.1 :$\sigma$ 是MaxAndSum问题天顶解的 $((1 + \alpha)\rho_{cmax}, \frac{1 + \alpha}{\alpha} \rho_{minsum})$ 近似。

如果 $\sigma_{cmax}$ 和 $\sigma_{minsum}$ 分别是最大完工时间和完成时间总和的最优解,那么 $\sigma$ 是天顶点的 $(1 + \alpha, \frac{1 + \alpha}{\alpha})$ - 近似。通过更精确地选择 $\sigma_{minsum}$ 中的切割点,可以将结果改进为对天顶点的 $(1 + \rho, \frac{e\rho}{e\rho - 1})$ - 近似($\forall\rho \in [0; 1]$)。

这种技术具有通用性,已扩展到其他目标函数,但并非适用于所有调度问题,因为截断和组合操作必须生成有效的调度。例如,在有硬期限的问题中,组合操作可能会违反约束条件。

此外,Skutella提出将问题建模为依赖于参数的线性规划,当参数 $\alpha$ 变化时,可提供近似比为 $(1 + \alpha, 1 + \frac{1}{\alpha})$ 的一系列解决方案。

下面是Stein框架的流程图:

graph TD;
    A[开始] --> B[获取\(\sigma_{cmax}\)和\(\sigma_{minsum}\)];
    B --> C[计算\(l = \alpha C_{\sigma_{cmax}}^{max}\)];
    C --> D[划分任务集合\(T_{minsum}\)和\(T_{cmax}\)];
    D --> E[根据\(\sigma_{minsum}\)调度\(T_{minsum}\)中的任务];
    E --> F[从时间\(l\)开始,根据\(\sigma_{cmax}\)调度\(T_{cmax}\)中的任务];
    F --> G[得到调度\(\sigma\)];
    G --> H[结束];
2. EfficientReliable问题的Pareto集近似
2.1 动机

在多目标优化问题中,找到所有可能有趣的解决方案是一个难题。生成实例的Pareto集通常很困难,因为计算单个Pareto最优解可能是一个NP - 完全问题,而且Pareto集的基数可能与实例大小呈指数关系。因此,合理的方法是确定Pareto集的近似(具有多项式数量的解决方案)。

对于EfficientReliable问题,两个目标是最大完成时间和可靠性指标 $rel = \sum \lambda_{j}C_{j}$,其中 $C_{j}$ 是处理器 $j$ 上最后一个任务的完成时间。该问题的天顶解不能在常数因子内近似,证明如下:
考虑一个由 $m$ 个处理器和 $m$ 个单位作业($p_{i} = 1$)组成的实例,第一个处理器的可靠性指标 $\lambda_{1} = 1$ 小于其他处理器的可靠性指标 $\lambda_{j} = x$($x > 1$)。最大完工时间的最优调度是将每个作业安排在不同的处理器上,此时 $C_{max}^{ } = 1$;可靠性的最优调度是将所有作业安排在最可靠的处理器上,此时 $rel^{ } = m$。假设存在一个 $(k, k)$ - 近似算法,生成的调度在最大完工时间上是 $k$ - 近似的,那么最多有 $k$ 个作业安排在处理器1上,$m - k$ 个作业安排在其他处理器上,这样的解决方案的可靠性为 $\sum_{j} C_{j}\lambda_{j} \geq k + (m - k)x$,可靠性的近似比与 $x$ 呈线性关系,而 $x$ 是无界的,所以不存在 $(k, k)$ - 近似算法。

2.2 Pareto集近似的定义

Papadimitriou和Yannakakis给出了Pareto集的 $(1 + \epsilon)$ - 近似的定义。非正式地说,如果Pareto集中的每个解决方案都被集合 $P$ 中的至少一个解决方案 $(1 + \epsilon)$ - 支配,则集合 $P$ 是Pareto集的 $(1 + \epsilon)$ - 近似。

形式上,$P$ 是Pareto集 $P^{ }$ 的 $\rho = (\rho_{1}, \ldots, \rho_{k})$ - 近似,如果对于每个 $S^{ } \in P^{ }$,都存在 $S \in P$,使得对于所有 $i = 1, \ldots, k$,有 $f_{i}(S) \leq \rho_{i}f_{i}(S^{ })$。

相关定理如下:
- 定理9.4 :对于每个决策版本属于NP的多目标优化问题,对于每个实例 $I$ 和 $\epsilon > 0$,都存在一个近似Pareto集 $P_{\epsilon}$,它是Pareto集的 $(1 + \epsilon)$ - 近似,并且 $P_{\epsilon}$ 的基数在 $|I|$ 和 $\frac{1}{\epsilon}$ 上是多项式的。

获取Pareto集近似有两种主要技术:第一种适用于非常受限的目标函数类,并且计算密集,因为它需要运行大量的伪多项式算法;第二种是阈值方法,将在下一节介绍。

下面是Pareto集近似概念的表格说明:
| 概念 | 定义 |
| ---- | ---- |
| $(1 + \epsilon)$ - 近似 | Pareto集中每个解被集合中至少一个解 $(1 + \epsilon)$ - 支配 |
| $\rho$ - 近似 | 对于 $P^{ }$ 中每个 $S^{ }$,存在 $P$ 中 $S$,使 $f_{i}(S) \leq \rho_{i}f_{i}(S^{*})$ |

2.3 阈值方法
2.3.1 符号表示

大多数解决双目标问题的现有算法会对第一个目标设置一个阈值,并构建第二个目标的 $\rho_{2}$ - 近似。在文献中,这种算法被不恰当地称为 $(\rho_{1}, \rho_{2})$ - 近似。为了澄清这种近似概念,提出了一种新的符号表示。

定义9.5 :给定最大完工时间的阈值 $\omega$,一个 $\left<\overline{\rho_{1}}, \rho_{2}\right>$ - 近似算法会给出一个解决方案,其 $C_{max} \leq \rho_{1}\omega$ 且 $rel \leq \rho_{2}rel^{ }(\omega)$,其中 $rel^{ }(\omega)$ 是最大完工时间小于 $\omega$ 的调度中 $rel$ 的最佳可能值。只有当不存在满足最大完工时间约束的解决方案时,该算法才不返回解决方案。

这种解决问题的技术类似于 $\epsilon$ - 约束问题,其中一个目标应在另一个目标的严格约束下进行优化。因此,一个 $\left<\overline{1}, \rho\right>$ - 近似算法是 $\epsilon$ - 约束问题的 $\rho$ - 近似。

2.3.2 $\left<\overline{2}, 1\right>$ - 近似算法

对于EfficientReliable问题,提出了一个名为CMLF(约束最小 $\lambda$ 优先)的 $\left<\overline{2}, 1\right>$ - 近似算法。具体步骤如下:
1. 给定一个最大完工时间值 $\omega$ 作为CMLF的参数。如果 $\omega < \max(\frac{\sum p_{i}}{m}, \max p_{i})$,算法返回错误。
2. 按照 $\lambda_{j}$ 的非递减顺序考虑处理器。
3. 在每个处理器 $j$ 上,添加作业直到该处理器上作业的总处理时间超过 $\omega$。

定理9.5 :CMLF是EfficientReliable问题的 $\left<\overline{2}, 1\right>$ - 近似算法,其时间复杂度为 $O(m \log m + n)$。证明如下:
- 当 $\omega < \frac{\sum p_{i}}{m}$ 时,显然不存在最大完工时间优于 $\omega$ 的解决方案。当 $\omega \geq \frac{\sum p_{i}}{m}$ 时,算法返回的是一个在 $m$ 个处理器上的有效调度。因为如果最后一个处理器的最大完工时间超过 $\omega$ 且还有未调度的作业,会导致 $\sum p_{i} > m\omega$,这与 $\omega \geq \frac{\sum p_{i}}{m}$ 矛盾。
- 最大完工时间小于 $2\omega$。对于给定的处理器 $j$,没有作业在 $\omega$ 之后开始,所以 $C_{j} \leq \omega + \max p_{i}$,又因为 $\max p_{i} \leq \omega$,所以证明了在 $C_{max}$ 上的近似。
- 对于可靠性的近似证明较复杂。最优可靠性是将所有作业安排在最可靠的处理器上。在最大完工时间小于 $\omega$ 的调度中,通过将问题放宽到其可抢占版本,可以得到最佳可靠性 $rel^{ }(\omega)$ 的下界。CMLF生成的调度在最可靠的处理器上执行的工作量甚至超过了 $\omega$ 个单位,所以其可靠性优于 $rel^{ }(\omega)$。

Shmoys和Tardös曾为在无关机器上调度作业提出了一个 $\left<\overline{2}, 1\right>$ - 近似算法,该结果也可用于处理无关处理器情况下的EfficientReliable问题。

下面是CMLF算法的流程图:

graph TD;
    A[开始] --> B[输入\(\omega\)];
    B --> C{\(\omega < \max(\frac{\sum p_{i}}{m}, \max p_{i})\)};
    C -- 是 --> D[返回错误];
    C -- 否 --> E[按\(\lambda_{j}\)非递减顺序排列处理器];
    E --> F[遍历每个处理器\(j\)];
    F --> G[在处理器\(j\)上添加作业直到总处理时间超\(\omega\)];
    G --> H[结束];
    D --> H;
2.3.3 框架

算法9.1通过对最大完工时间阈值的几何序列应用 $\left<\overline{2}, 1\right>$ - 近似算法来构建问题的Pareto集近似。具体步骤如下:

算法9.1: Pareto集近似算法
输入: ϵ 一个正实数
输出: S 一个解决方案集合
S = ∅;
for i ∈ [1, 2, …, ⌊log₁₊₍ϵ/₂₎(Cₘₐₓₘₐₓ / Cₘᵢₙₘₐₓ)⌋] do
    ωᵢ = (1 + ϵ/2)ⁱCₘᵢₙₘₐₓ;
    πᵢ = CMLF(ωᵢ);
    S = S ∪ {πᵢ};
return S;

其中,有效最大完工时间的值由两个边界界定:
- 下界 $C_{min}^{max} = \frac{\sum_{i} p_{i}}{m}$,通过考虑处理器之间的完美负载平衡得到。
- 上界 $C_{max}^{max} = \sum_{i} p_{i}$,即所有作业都安排在最可靠处理器上时的最大完工时间,这种解决方案在可靠性指标上是最优的。

使用指数增长大小的块,需要执行 $\left\lfloor\log_{1 + \frac{\epsilon}{2}}(\frac{C_{max}^{max}}{C_{min}^{max}})\right\rfloor$ 步。生成集合的基数是多项式的,因为算法生成的解决方案数量小于 $\left\lfloor\log_{1 + \frac{\epsilon}{2}} m\right\rfloor$,这在 $\frac{1}{\epsilon}$ 和实例大小上是多项式的。

定理9.6 :算法9.1是EfficientReliable问题Pareto集的 $(2 + \epsilon, 1)$ 近似算法。证明如下:
设 $\pi^{ }$ 是一个Pareto最优调度,那么存在 $k \in N$ 使得 $(1 + \frac{\epsilon}{2})^{k - 1}C_{min}^{max} \leq C_{max}(\pi^{ }) \leq (1 + \frac{\epsilon}{2})^{k}C_{min}^{max}$。
- 可靠性 :$rel(\pi_{k}) \leq rel^{ }((1 + \frac{\epsilon}{2})^{k}C_{min}^{max})$(根据定理9.5)。因为 $\pi^{ }$ 是Pareto最优的,所以 $rel(\pi^{ }) = rel^{ }(C_{max}(\pi^{ }))$,又因为 $C_{max}(\pi^{ }) \leq (1 + \frac{\epsilon}{2})^{k}C_{min}^{max}$,且 $rel^{ }$ 是一个递减函数,所以 $rel(\pi_{k}) \leq rel(\pi^{ })$。
- 最大完工时间 :$C_{max}(\pi_{k}) \leq 2(1 + \frac{\epsilon}{2})^{k}C_{min}^{max} = (2 + \epsilon)(1 + \frac{\epsilon}{2})^{k - 1}C_{min}^{max}$(根据定理9.5),而 $C_{max}(\pi^{ }) \geq (1 + \frac{\epsilon}{2})^{k - 1}C_{min}^{max}$,所以 $C_{max}(\pi_{k}) \leq (2 + \epsilon)C_{max}(\pi^{ })$。

3. 多目标调度中的公平性

在为多个代理调度作业时,不仅要高效地调度作业,还要公平地分配资源。以TwoAgentMinSum问题为例,设代理A(B)的作业数量为 $n_{A}$($n_{B}$),$p_{A}^{i}$ 表示代理A的第 $i$ 个作业 $J_{A}^{i}$ 的处理时间,且机器为单处理器。

3.1 公平性的含义

一个Pareto最优解可能对某些代理来说是不公平的。例如,在TwoAgentMinSum问题的一个实例中,每个代理有三个作业,大小分别为 $p_{A}^{1} = p_{B}^{1} = 1$,$p_{A}^{2} = p_{B}^{2} = 3$,$p_{A}^{3} = p_{B}^{3} = 5$。调度方案 $(J_{A}^{1}, J_{A}^{2}, J_{A}^{3}, J_{B}^{1}, J_{B}^{2}, J_{B}^{3})$ 先调度A的作业,得到 $(\sum C_{A}^{i}, \sum C_{B}^{i}) = (14, 41)$。尽管这个解是Pareto最优的(任何其他调度都会增加 $\sum C_{A}^{i}$),但代理B可能会觉得受到了不公平的对待。

在多目标调度中,对于公平性的含义没有广泛接受的共识。Webster字典将“公平”定义为“没有私利、偏见或偏袒”。然而,如果代理A产生的作业比代理B多得多,而调度器平等对待所有作业,那么A的作业将受到青睐。而且,自私的代理可能会产生大量自己作业的副本,这不仅不利于其他代理,还会降低整个系统的性能。

为了实现公平,调度器应该考虑代理从系统中获得的收益。Minimax(Rawlsian社会福利函数)是确保公平性的最流行方法之一,调度器会最小化目标的最大值。假设每个作业有不同的所有者,Minimax对应于经典的最大完工时间最小化。Leximax是Minimax的改进,如果两个解决方案的最大(最差)目标值相同,调度器会根据第二差的目标值进行比较(如果仍然相同,则根据第三差的目标值,依此类推)。一个非Leximax支配的解决方案是Pareto最优的,但存在一些问题,其中Leximax最优解不是Min - max公平的。在后续讨论中,将使用Leximax,因为它在调度社区中更受欢迎。

以下是不同公平性方法的对比表格:
| 公平性方法 | 含义 | 特点 |
| ---- | ---- | ---- |
| Minimax | 最小化目标的最大值 | 经典最大完工时间最小化思路 |
| Leximax | 改进Minimax,依次比较目标值 | 更细致的公平性衡量 |

源码地址: https://pan.quark.cn/s/d1f41682e390 miyoubiAuto 米游社每日米游币自动化Python脚本(务必使用Python3) 8更新:更换cookie的获取地址 注意:禁止在B站、贴吧、或各大论坛大肆传播! 作者已退游,项目不维护了。 如果有能力的可以pr修复。 小引一波 推荐关注几个非常可爱有趣的女孩! 欢迎B站搜索: @嘉然今天吃什么 @向晚大魔王 @乃琳Queen @贝拉kira 第三方库 食用方法 下载源码 在Global.py中设置米游社Cookie 运行myb.py 本地第一次运行时会自动生产一个文件储存cookie,请勿删除 当前仅支持单个账号! 获取Cookie方法 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 按刷新页面,按下图复制 Cookie: How to get mys cookie 当触发时,可尝试按关闭,然后再次刷新页面,最后复制 Cookie。 也可以使用另一种方法: 复制代码 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 控制台粘贴代码并运行,获得类似的输出信息 部分即为所需复制的 Cookie,点击确定复制 部署方法--腾讯云函数版(推荐! ) 下载项目源码和压缩包 进入项目文件夹打开命令行执行以下命令 xxxxxxx为通过上面方式或取得米游社cookie 一定要用双引号包裹!! 例如: png 复制返回内容(包括括号) 例如: QQ截图20210505031552.png 登录腾讯云函数官网 选择函数服务-新建-自定义创建 函数名称随意-地区随意-运行环境Python3....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值