O ptimal B inary S earch T ree
Optimal( 理想 ) Binary ( 二元 ) Search ( 搜尋 ) Tree ( 樹 ) OBST =
Preface of OBST It is one special kind of advanced tree. It focus on how to reduce the cost of the search of the BST. It may not have the lowest height. It needs 3 tables to record.
Purpose In order to promote the efficiency of the search, we can let the cost of the search minimum or mean the average of compare minimum
It has n keys in sorted order (representation k 1,k 2,…,k n ) ( k 1 <k 2 <…<k n ) some searches may be for values not in k i, so we also have n+1 “dummy keys” d 0,d 1,…,d n representating not in k i. d 0 = all values < k 1. d n = all values > k n.
APPLE Bird CatDog Egg Fish Grape dummy keys (d0,d1,…,dn) Keys (k1,k2,..kn)
For each key ki, a pi which means the probability searching for ki. For each key di, a qi which means the probability searching for di.
elements k n = key p n = probability of searching k n d n = dummy key q n = probability of searching d n
Success probability = (i=1~n) ∑ p i Failure probability = (i=0~n) ∑ q i (i=1~n) ∑ p i + (i=0~n) ∑ q i = 1 Success cost = (i=1~n) ∑ p i * (depth(k i )+1) Failure cost= (i=0~n) ∑ q i * (depth(d i )+1) Useful statement
E[search cost in ]= Success+ Failure =(i=1~n) ∑ p i * (depth(ki)+1) +(i=0~n) ∑ q i * (depth(di)+1) = (i=1~n) ∑ p i +(i=0~n) ∑ q i +(i=1~n) ∑ p i * depth(ki) +(i=0~n) ∑ q i * depth(di) = 1+(i=1~n) ∑ p i * depth(ki) +(i=0~n) ∑ q i * depth(di)
Example#1 i pi qi K1K1 K1K1 K2K2 K2K2 K3 K4 K5 K4 K5 d0 d1 d2d3d4d5 d1 d2d3 d4 d5
K2K2 d0d0 i pi qi K 1 =2*0.15=0.3 K 2 =1*0.1=0.1 K 3 =3*0.05=0.15 K 4 =2*0.1=0.2 K 5 =3*0.2=0.6 d 0 =3*0.05=0.15 d 1 =3*0.1=0.3 d 2 =4*0.05=0.2 d 3 =4*0.05=0.2 d 4 =4*0.05=0.2 d 5 =4*0.1=0.4 K4K4 K1K1 K3K3 K5K5 d1d1 d2d2 d5d5 d4d4 d3d3 Cost=Probability * (Depth+1) all cost=2.8
i pi qi K 1 =2*0.15=0.3 K 2 =1*0.1=0.1 K 3 =4*0.05=0.2 K 4 =3*0.1=0.3 K 5 =2*0.2=0.4 d 0 =3*0.05=0.15 d 1 =3*0.1=0.3 d 2 =5*0.05=0.25 d 3 =5*0.05=0.25 d 4 =4*0.05=0.2 d 5 =3*0.1=0.3 Cost=Probability * (Depth+1) K1K1 K2K2 K5K5 K4K4 K3K3 d0d0 d1d1 d5d5 d4d4 d2d2 d3d3 all cost=2.75
Picture#1=2.8 Picture#2=2.75 SO Picture#1 cost more than Picture#2 Picture#2 is better. The depth of Picture#1 is 3 The depth of Picture#2 is 4