---
# System prepended metadata

title: Systems of difference constraints

---

# Systems of difference constraints (CLRS 22.4)

###### `111交大_33`

## 思路

首先對於任意點 $V_x \notin \{V_i, V_j\}$，對 $V_x$ 到 $V_j$ 的最短距離 $dis(V_x, V_j)$，可以考慮兩種case：
- 若 $dis(V_x, V_j)$ 由 $dis(V_x, V_i)$ 收斂，則 $dis(V_x, V_j) = dis(V_x, V_i) + w(V_i, V_j)$ ，其中 $w(V_i, V_j)$ 為 $V_i$ 和 $V_j$ 相連邊的權重。
- 若 $dis(V_x, V_j)$ 不由 $dis(V_x, V_i)$ 收斂，則必存在另一點可以收斂 $dis(V_x, V_j)$ ，此時 $dis(V_x, V_j) < dis(V_x, V_i) + w(V_i, V_j)$

綜合以上兩點，可以得出 $dis(V_x, V_j) \leq dis(V_x, V_i) + w(V_i, V_j)$ ，即 $dis(V_x, V_j) - dis(V_x, V_i) \leq w(V_i, V_j)$ 。

而 `Systems of difference constraints` 的限制式可以寫成： $x_j - x_i = w_{ij}$，令 $x_i = dis(V_x, V_i)$，並將 $w_{ij}$ 視為從 $Vi$ 到 $Vj$ 中的邊的權重(即$w_{ij} = w(i,j)$)，在圖中將兩點相連，則**求解 $dis(V_x, V_i)$ 等同求解 $x_i$**。為了符合上述 $V_x \notin \{V_i, V_j\}$ 的前提，我們可以在圖中新增一點 $V_0$ 指向所有點，權重隨意，但一般為 $0$。

<style>
strong {
  background-color: yellow; /* 設置背景顏色為黃色 */
  padding: 3px; /* 添加一些內邊距以增加可讀性 */
}
</style>
