Trie -Join : Efficient Trie -based String Similarity Joins with Edit Distance Constraints
Multi-Prefix Trie: a New Data Structure for
-
Upload
mehdi-sa -
Category
Engineering
-
view
215 -
download
6
Transcript of Multi-Prefix Trie: a New Data Structure for
درخت چند پیشوندی:
یک ساختار داده ای جدید برای طراحی جدولهای مسیریابی پویا
نویسنده:Sun-Yuan Hsieh Member, IEEE, Yi-Ling Huang, and
Ying-Chi Yangناشر:
IEEE TRANSACTIONS ON COMPUTERS
تاریخ:2012/12/13
مقدمه
هFوندی گفتFد پیشFه درخت چنFنیم کFرفی میکFدی را معFاختار داده ای جدیFما س
میشFود و Fیکی از ویFژگی کFلیFدی سFاFخFتارF مFا اینF اسFت کFه FمیتFوانFد بیشF از یFک
گFرهF Fرا Fدر خFود ذخFیFره کنFد،F کFه Fاین FعملFکFرد بFاعFث کFاFهش دسFترسFی هFا بFه
حافظه FمیشFود.
تری راFوندهای بیشFد پیشFا میتوانFاختار مFود، سFام میشFتجویی انجFه جسFزمانیک
دFر یFک گFرهF FجسFتجFوF کنFد وF ممFکن اسFت طFوالنی تFرینF پیشFوندF تطFبیقFی را در
یFک گرهF داخلیF بیابد تا یFک بFرگ.
.ه استFه لحظFه بFورت لحظFه صFیریابی بFداول مسFانی جFتیبانی از بروزرسFپش
ری راFاختار داده ایی دیگFا سFوندی، مFد پیشFاس درخت چنFر اسFر این، بFعالوه ب
پFیFشFوندFی شFاخصF دار گفتFه مFیشFود FکFه نFیزF FمعFرفیF FمیکFنیمF کFه دFرخت چنFد
و ارتفFاع Fدرخت FاهشFک جهت پFیFشFوندFی چنFد دFرFخت را FبFا FدولFج FاخصFش
تسرFیع عملFیات روی جداFول مسFیریاFبی ترکیب میکند .
31 از 4
ساختار داده ایتعریف For a prefix p = p0p1 . . . pl−1*, let P’ = p0p1 . . . pi* for 0
≤ i ≤ l − 2 be a sub-prefix of p
len(p):length of a prefix,for example len(110110**)=6
رهFسطح گV ورتFه صFه درخت، بFدر ریش Level(V) ودFایش داده میشFنم
را نشان میدهد.Vکه تعداد یالهای طول مسیر از ریشه تا گره
عFتواب از و PT_LOOKUP، PT_INSERTما PT_DELETE انFنش بFرای
حFذف و جسFتجو،درج هFای عملیFات بFرای مربFوط هFای الگFوریتم دادن
است.IP طول آدرس W زمان نیاز دارد که O(W)استفاده میکنیم، که
31 از 5
Prefix0*
01*0110*
1*1101*
11011*
0*0 1
0 101*
0 10110*
0 11*
0 11101*
0 111011*
درخت تک پیشوندی
31 از 6
درختهای چند پیشوندی
k-stride Multi- Prefix Trie (k-MPT) هFک ،k یFک گFام و یFک عFدد صFحیح مثبت اسFت، درخت
نFوع گFره اسFت: 2چنFد پیشFوندی شFامل اولیFه( ثانویFه (p-node گFره -s) و گFره
node:که دارای خواص زیر هستند (P1 هر :p-node v:شامل فیلدهای زیر است
0 ≤ t ≤ m ده درFیره شFوندهای ذخFداد پیشFتع v است که m = 2k+1
وندهایFپیشt طFتوس p1(v), p2(v), . . . , pt(v) یرFغ در جهت کFه میشFوند داده نشFان
افزایشی ذخیره شده اند؛ ≥ · · · ≥ len(p1(v)) ≤ len(p2(v)) بFا تFرتیب
len(pt(v))
31 از 7
درختهای چند پیشوندی
(cport(pi(v)) پورت خروجی pi(v).است
(dS_pointer(v) وندیFد پیشFه درخت چنFب ، اشFاره گFری کFه
PT کل ازFمتشF s-node ولFا طFهایی بFوندFپیش FهFت کFا اسFه
FقلFداFحk · level(v) زFا کمFتر امFا k · (level(v)+1) †
FطFFتوس کFFه FختFدر رFاحFFتی بFFرFای مFیکنFFد. ذخFFیره
s_pointer(v) ، ه میشودFن دادFنشا PT ی� v.میگوییم
(e کFوای یFمحتp-node v) وانFادگی بعنFد بسFمیتوان t, p1(v),
p2(v), . . . , pt(v), s_pointer(v).شود Fنشان داده (
31 از 8
درختهای چند پیشوندی
P2: p-node امشFه گFی کk تF2 اس^k ،د داردFفرزن
فFرزند خواهFد داشتF 4:Fآنگاه k=2بنابراینF اگر
child0(v), child1(v), child2(v), child3(v)
هستند.11, 10, 01, 00به ترتیب مربوط به
P3 کFی :p-node داخلی p-node هFک اسFت کFاملی
بFدون p-node خFارجFی p-nodeفFرزنFدانFی دارد و یFک
یFک کFه باFشFید داFشFته توجFه p-nodeفرزنFد FاسFت.
F.کامل نباشد Fی ممکن استFارجFخ31 از 9
درختهای چند پیشوندی
P4 دFازه دهیFاج :uو v دو p-node یرFروی مس
T ورتFه صFان بFر پیشوندهایشFند. اگFباش pi(u)
پیشFوند pj(v) هسFت چنانکFه pj(v)و زیFر یFک
pi(u) آنگاه level(u) ≤ level(v).0 1
0 101*
0101* 1سطح
سطح2
31 از 10
درختهای چند پیشوندی
:مثالی از درخت چند پیشوندی
a,e کامل و b,c,d.ناکامل هستند
: تعداد پیشوندهاK=2, m=2k+1=5
: 2تعداد فرزندان^k,2^2=4
اشاره گر نقطهs_pointer.هست
*110100* است.1101001 زیر پیشوندی از
31 از 11
درختهای چند پیشوندی
M=5 چون a,e کامل b,c,dناکامل
m S-pointer
31 از 12
A ساخت یک :k-MPTخالی
Algorithm MPT_CREATE(T )1: v := ALLOCATE P-NODE()2: root(T) := v
عملیات جدولهای مسیر یابی پویا
31 از 13
S-pointerprefixes
ch0 ch1 ch2 ch3
تابع درج
31 از 14
شرح تابع درج
PT با P گام
اول:مقایسه
Len(p)<k.(level(V)+1)
صفر PTسطح : گام سوم
Len(p)>=k.(level(v)+1)
که اگر نود جاری کامل
نباشد
Pدر آن درج میشود
:گام دوم
2اگر نود کامل باشد
حالت
داریم
1.Len(Pm)<Len(P)
P جایگزینPmشده
2.Len(Pm)>=Len(P)
31 از P15 در فرزندPmدرج میشود
مثالی برای درج
010*
31 از 16
0110100*
مثالی برای درج
سپس کوچکترین پیشوند را بعنوان ورودی در نظر میگیریمچون طول پیشوند ورودی بزرگتر است ما آنرا جایگزین میکنیم ابتدا پیشوند ورودی را با کوچکترین پیشوند درaمقایسه میکنیم
31 از 18
عملیات جستجو
31 از 19
مثالی برای عملیات جستجو
• DA=11010010 • DA=00100110
طوالنی ترین پیشوند تطبیقی
31 از 20
حذف
31 از 21
مثالی برای عملیات حذف
• Delete 01*
31 از 22
• Delete 110100*
مثالی برای عملیات حذف
110100
31 از 23
درخت چند پیشوندی شاخص دار
ابتFث داده شFده اسFت،شFاخص جFدول aطول
2^a دخلFFم هFFر چنانکFFه دارد محتFFوا
tab[b0b1 . . . bα−1] رFاره گFک اشFامل یFش
است.
31 از 24
تعریف تابعTAKE PREFIX ENDPOINT
TAKE PREFIX ENDPOINT(101000*, 8) = (10100011)2 = 163.
رFاگ از یFک مقFدار شFاخص pآنگFاه len(p) < αموقFع درج و حFذف، بFه بیش
مربوط میشود.
دFکنی فFرض مثFال، و p =101000برای *α = 8 کFی اول بیت (هشFت
، 10100000* شFامل 101000پیشFوندF،مقFدار شFاخصF را نFشFان میFدهFد).F چFون
-k* بایFد در F،p =101000 پیشFوند 10100011 و 10100010، 10100001
MPT طFتوسF دهFان داده شFترتیب نشFب tab[10100000] ، tab[10100001]،
tab[10100010] و tab[10100011].
درخت چند پیشوندی شاخص دار
31 از 25
insert and delete 5,000 prefixes in AS4637 to compute the average update time
α =8 Best average lookup time when k = 2 and m = 2k + 1. best average update time when k = 4 and m = 3k
We choose m=2k+1
31 از 26
• We choose k=2
31 از 27
31 از 28
31 از 29
Update time
31 از30
Thanks For Your AttentionHappiness cannot come from without It must come It is not what we see and touch or that which others
do for us which makes us happy it is that which we think and feel and do
first for the other fellow and then for ourselves.