生成纳什稳定联盟结构的算法与带约束的合取查询研究
生成纳什稳定联盟结构算法
在研究生成纳什稳定联盟结构的问题中,有一个算法在时间复杂度和空间复杂度上展现出了良好的特性。该算法的 while 循环每次迭代时间复杂度为 $O(2^n)$,因为在第 $i$ 次迭代结束时,工作集包含了所有大小为 $n - i + 1$ 的联盟结构,当 $i \approx n/2$ 时,这个集合的大小呈指数级增长。根据相关定理,没有其他算法能比 $O(n^n)$ 更快地解决该问题,所以此算法符合该问题的渐近下界。
该算法的空间需求仅为 $O(Z(n, \lceil n/2 \rceil))$,其中 $n$ 是参与者的数量,$Z$ 是第二类斯特林数,这明显小于存储所有联盟结构所需的 $O(|C({1, 2, …, n})|)$。
实验设置
为了评估该算法,使用了三种不同的享乐游戏类作为基准,分别是通用可加可分、对称和厌恶敌人游戏。问题实例的生成步骤如下:
1. 生成一个大小为 $|N| \times |N|$ 的随机实值矩阵 $v$,以表示玩家的可加可分偏好 $v_i : N \to \mathbb{R}$。矩阵 $v$ 的第 $i$ 行表示玩家 $i \in N$ 对与 $i$ 在同一联盟中的其他玩家的估值。对于每个玩家 $i \in N$ 和每个包含 $i$ 的联盟 $S \in A_i$,玩家 $i$ 对联盟 $S$ 的估值 $v_i(S)$ 为 $\sum_{j \in S} v[i, j]$。
2. 遍历每个玩家的偏好列表。对于玩家 $i \in N$ 和其偏好列表中另一个玩家 $j \in N \setminus {i}$,在通用情况下生成一个介于