08.3 拓撲指數:維納指數與分子的沸點預測#
8.3.1 一個工程問題引出的數學概念#
1947 年,化學家 Harry Wiener 在康寧玻璃公司研究聚異丁烯的蒸餾與 黏度時,面對一個實際工程問題:只憑分子結構式,能否預測烷烴的 沸點? 當時量子力學計算成本高昂,實驗資料又有限。Wiener 的答案 驚人地簡單:把分子圖中所有原子對之間的鍵距加起來,這一個數字 就能與沸點高度相關。這個量後來被稱為維納指數(Wiener index), 是史上第一個化學拓撲指數(topological index),也是定量結構—性質 關係(QSPR)的開山之作。
歷史的因果鏈值得注意:Wiener 的成功 → 刺激 Hosoya(1971)、 Randić(1975)、Balaban(1982)等人提出更多指數 → 指數的大量需求 又推動圖論中「化學不變量」分支的發展 → 最終汇入今天的機器學習 分子表徵學習(10.2)。工程需求與數學理論在此形成正回饋環。
8.3.2 維納指數的定義#
定義 8.8(Wiener 指數) 對連通圖 \(G\) ,
其中 \(d(i,j)\) 為頂點間最短路(鍵距)。Wiener 原始版本只適用於樹 (烷烴),1976 年後推廣至一般圖。
定理 8.5(Wiener 1947,路徑公式) 對樹 \(T\) ,
其中 \(N_e\) 是刪去邊 \(e\) 後較小側的頂點數。證明概念:每一對 \((i,j)\) 的路徑恰好使用若干條邊,改從「每條邊被幾對頂點的路徑跨越」 計數即可。此雙重計數技巧是組合學典範,也讓 \(W\) 可在 \(O(n)\) 內算出。
定理 8.6(樹的極值) 在所有 \(n\) 頂點的樹中:
- 路徑圖 \(P_n\) (直鏈烷烴)有最大 \(W = \binom{n+1}{3} = \frac{n^3 - n}{6}\) ;
- 星形圖 \(K_{1, n-1}\) (高度分支)有最小 \(W = (n-1)^2\) 。
化學詮釋:直鏈分子「拉得越長」,原子對平均距離越大, \(W\) 越大; 分支越多,原子對彼此越近, \(W\) 越小。而實驗事實正是:分支越多, 沸點越低(正戊烷 36.1 °C > 異戊烷 27.8 °C > 新戊烷 9.5 °C)。 \(W\) 與沸點負相關的機制,於此在拓撲層面獲得了解釋。
8.3.3 物理機制:為什麼「距離和」控制沸點?#
沸點由分子間凡得瓦力(分散力)決定,其強度依賴分子間接觸面積。 分支使分子趨近球形、表面積減小、接觸變弱 → 沸點下降。 \(W\) 恰是 分子「延展程度」的拓撲代理: \(W\) 大 ↔ 分子細長 ↔ 接觸面積大 ↔ 沸點高。這說明好的拓撲指數不只是統計相關,還應有物理可詮釋性。
8.3.4 後繼指數:Randić 與 Balaban#
定義 8.9(Randić 連通指數,1975) 以 \(\delta_i = \deg(v_i)\) ,
Randić 原以為這只是經驗擬合,後來被證明與圖的譜理論、隨機遊走 (return probability)深度相關,並成為今日機器學習特徵工程中的 常備描述子。一個為回歸而生的經驗量,最終獲得嚴格數學身分—— 這是化學資訊學的典型劇本。
定義 8.10(Balaban 指數,1982) 以圖距為基礎並作規格化,
其中 \(D_i = \sum_j d(i, j)\) 為距離度和, \(\mu = m - n + 1\) 為環數。 \(J\) 對環狀分子(脂環化合物)的區分能力優於 \(W\) 。
8.3.5 化學實例:用 Wiener 指數預測烷烴沸點#
import itertools, numpy as np
def wiener_index(n_atoms, bonds):
"""BFS 求 all-pairs 最短路,回傳 Wiener 指數"""
adj = [[] for _ in range(n_atoms)]
for i, j in bonds:
adj[i].append(j); adj[j].append(i)
W = 0
for s in range(n_atoms):
dist = [-1] * n_atoms; dist[s] = 0
q = [s]
while q:
u = q.pop(0)
for v in adj[u]:
if dist[v] < 0:
dist[v] = dist[u] + 1; q.append(v)
W += sum(dist)
return W // 2
# 碳骨架(氫壓縮):C5 的三種異構物
pentane = [(0,1),(1,2),(2,3),(3,4)] # 正戊烷
isopentane = [(0,1),(0,2),(0,3),(3,4)] # 異戊烷
neopentane = [(0,1),(0,2),(0,3),(0,4)] # 新戊烷
bp = {"正戊烷": 36.1, "異戊烷": 27.8, "新戊烷": 9.5}
for name, bonds, key in [("正戊烷", pentane, "正戊烷"),
("異戊烷", isopentane, "異戊烷"),
("新戊烷", neopentane, "新戊烷")]:
print(f"{name}: W = {wiener_index(5, bonds)}, 沸點 = {bp[key]} °C")
# 線性回歸:bp ≈ a * W^(2/3) + b(Wiener 1947 原始模型)
Ws = np.array([wiener_index(5, b) for b in
[pentane, isopentane, neopentane]], dtype=float)
y = np.array([36.1, 27.8, 9.5])
a, b = np.polyfit(Ws**0.667, y, 1)
print(f"擬合: 沸點 ≈ {a:.2f} * W^0.667 + {b:.2f}")
結果: \(W\) 值分別為 35、33、30,與沸點排序完全一致。對 \(\mathrm{C_1}\) – \(\mathrm{C_{10}}\) 全部 75 種烷烴異構物,Wiener 型 模型相關係數可達 0.98 以上——僅用「原子對距離和」這一個拓撲量。
8.3.6 Wiener 指數的數學後續#
指數被化學採用後,圖論學家反過來研究了它的極值理論:
- 定理 8.7(Dobrynin–Entinger–Gutman 綜述,2001) 對一般連通圖, 完全圖 \(K_n\) 給出最小 \(W = \binom{n}{2}\) ; \(n\) 頂點連通圖的最大 \(W\) 由路徑 \(P_n\) 達成(而非樹限定才成立)。
- \(W\) 與 Szeged 指數、** revised Szeged 指數**的關係,在含環 分子(如多環芳烴 PAHs)中成為熱門研究題材。
- \(W\) 可表為傳送矩陣(transmission) \(\tau_i = \sum_j d(i,j)\) 的對角和: \(W = \frac{1}{2}\mathrm{tr}(\Delta_{\tau})\) ,與 電阻距離(Kirchhoff 指數)形成「拓撲 vs. 電學」的對偶。
graph LR
A[Wiener 1947<br>沸點工程問題] --> B[Hosoya 1971<br>命名與推廣]
B --> C[Randic 1975 / Balaban 1982<br>指數家族]
C --> D[圖論極值理論<br>化學不變量數學化]
C --> E[QSPR / QSAR<br>藥物與材料篩選]
E --> F[分子指紋與 ML<br>第 10 章]8.3.7 章末小結#
- Wiener 指數 \(W = \sum_{i<j} d(i,j)\) 是第一個化學拓撲指數,源自 1947 年蒸餾工程的實際需求。
- 路徑公式 \(W(T) = \sum_e N_e (n - N_e)\) 讓 \(W\) 對樹可 \(O(n)\) 計算; 樹的極值定理(路徑最大、星形最小)解釋了「分支降低沸點」。
- Randić、Balaban 等後繼指數補足了環狀分子與度分佈的資訊, 並反過來成為圖論的數學研究對象。
- 拓撲指數的成功在於「可詮釋的統計相關」,但其缺點是退化性: 不同分子可能同指數——這一缺陷由分子指紋(10.1)接手解決。
下一步:Wiener 指數處理的是「線狀與分支」,但碳還有第三種 命運——閉合的曲面。09.1 將回到 250 年前的 Euler 多面體公式, 看它如何在 1985 年預言了足球烯 \(\mathrm{C_{60}}\) 的存在。