• 沒有找到結果。

多重配對問題及處理

4.2 一對多配對、多對多配對

4.2.2 多重配對問題及處理

假設在多對多的完全配對情況下,任一使用者的任一方向應恰好指向另一配對者,

因此,經由配對計算後應產生唯一正確解的 K 分圖,滿足圖中每個使用者所指的每個方 向最多只有一對應的使用者,即 K 分圖中任一頂點子集合 Pi與 Pj中只存在一個邊,或 是完全沒有相連的邊。然而,在頂點方向值可能相同的情況下,將造成計算配對關系時 Pi可能同時與其它另一不相交子集 Pk中的任一頂點也連通,因此產生多重配對成功的現 象。圖 21 顯示多重配對的問題,v43及 v32擁有相同方向值,使得 v11分別和 v43及 v32的 方向差,均滿足θd ≃ 180°的條件,造成(v11,v43)及(v11,v32)多重配對,同理,v11及 v23擁有 相同方向值,(v43,v11)及(v43,v23)亦多重配對,而此問題將造成使用者所指的方向同時有二 個候選使用者符合配對條件,系統將無法得到正確的使用者配對結果。

圖 21、多個使用者間多重配對問題(虛線表多重配對的邊)

20

因此,我們修改前述 k 分圖的條件,多重配對關系之 k 分圖應滿足以下條件:

任二不同子集合𝑃𝑖 及𝑃𝑗間應有一連通的邊且任一頂點的分支度等於 1。

∀𝑃𝑖 , 𝑃𝑗∃𝑒 = (𝑣i𝑙, 𝑣𝑗𝑚) ∈ 𝐸, 𝑣𝑖𝑙 ∈ 𝑃𝑖, 𝑣𝑗𝑚 ∈ 𝑃𝑗

 ∀𝑣𝑖𝑙 ∈ 𝑉, deg(𝑣𝑖𝑙) = 1

基於前述配對條件限制下之配對處理演算法流程圖(圖 22),分別為圖形初始化、標 記已配對頂點、利用回朔法求解及確認是否符合配對條件。首先,所有的方位資料處理 後將轉成 k 分圖的表示方式,接著標記已具有唯一配對條件的頂點,之後再拜訪其他未 確定的頂點,直到所有的頂點均符合上述的配對條件,以下將詳述執行過程。

圖 22、演算法推導流程

21

虛擬碼程序如下表 1。

表 1、演算法程序

Procedure Find The Right Map 1:

Paired node marking(degree = 1)

For all non-marking vertex vi in graph G Visit (Vertex vi)

if constraint verification ok return true

22

首先進行圖形初始化,完成後如圖 23 所示,其中每個子集合𝑃𝑖中的任一頂點𝑣𝑖𝑙與 其可連通的頂點標示於括弧中,而所有頂點子集合間的關系,則如圖 23 右方所示。

圖 23、K 分圖初始化

建立 K 分圖後,接著標記𝑃𝑖及𝑃𝑗間所有已確定配對的頂點(deg = 1),後續不需進行拜 訪(圖 24)。

圖 24、移除已確定配對關系的頂點

23

然後依序拜訪每個未標記配對的頂點及其對應連通的頂點檢查是否符合配對條件 (圖 25),若符合則拜訪下一個頂點,否則挑選此頂點的另一個對應連通的頂點並檢查是 否符合配對條件。

圖 25、回朔法執行

最後,拜訪完所有頂點並確認均符合配對條件後,即可得到正確的配對關系圖。由 此可知,利用本系統的配對演算法,能避免因方向值相同而造成的多重配對情形並取得 使用者間的真正配對關系。

圖 26、重複配對運算結果

24 David,Cathy 所指 Alice 的方向沒有對應的配對方位角。

圖 27、非完全配對圖示

相關文件