Multi-Prefix Trie: a New Data Structure for

30

Transcript of Multi-Prefix Trie: a New Data Structure for

Page 1: Multi-Prefix Trie: a New Data Structure for
Page 2: 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

Page 3: Multi-Prefix Trie: a New Data Structure for

مقدمه

ه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

Page 4: Multi-Prefix Trie: a New Data Structure for

ساختار داده ایتعریف 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

Page 5: Multi-Prefix Trie: a New Data Structure for

Prefix0*

01*0110*

1*1101*

11011*

0*0 1

0 101*

0 10110*

0 11*

0 11101*

0 111011*

درخت تک پیشوندی

31 از 6

Page 6: Multi-Prefix Trie: a New Data Structure for

درختهای چند پیشوندی

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

Page 7: Multi-Prefix Trie: a New Data Structure for

درختهای چند پیشوندی

(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

Page 8: Multi-Prefix Trie: a New Data Structure for

درختهای چند پیشوندی

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

Page 9: Multi-Prefix Trie: a New Data Structure for

درختهای چند پیشوندی

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

Page 10: Multi-Prefix Trie: a New Data Structure for

درختهای چند پیشوندی

:مثالی از درخت چند پیشوندی

a,e کامل و b,c,d.ناکامل هستند

: تعداد پیشوندهاK=2, m=2k+1=5

: 2تعداد فرزندان^k,2^2=4

اشاره گر نقطهs_pointer.هست

*110100* است.1101001 زیر پیشوندی از

31 از 11

Page 11: Multi-Prefix Trie: a New Data Structure for

درختهای چند پیشوندی

M=5 چون a,e کامل b,c,dناکامل

m S-pointer

31 از 12

Page 12: Multi-Prefix Trie: a New Data Structure for

A ساخت یک :k-MPTخالی

 Algorithm MPT_CREATE(T )1: v := ALLOCATE P-NODE()2: root(T) := v

عملیات جدولهای مسیر یابی پویا

31 از 13

S-pointerprefixes

ch0 ch1 ch2 ch3

Page 13: Multi-Prefix Trie: a New Data Structure for

تابع درج

31 از 14

Page 14: Multi-Prefix Trie: a New Data Structure for

شرح تابع درج

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درج میشود

Page 15: Multi-Prefix Trie: a New Data Structure for

مثالی برای درج

010*

31 از 16

Page 16: Multi-Prefix Trie: a New Data Structure for
Page 17: Multi-Prefix Trie: a New Data Structure for

0110100*

مثالی برای درج

سپس کوچکترین پیشوند را بعنوان ورودی در نظر میگیریمچون طول پیشوند ورودی بزرگتر است ما آنرا جایگزین میکنیم ابتدا پیشوند ورودی را با کوچکترین پیشوند درaمقایسه میکنیم

31 از 18

Page 18: Multi-Prefix Trie: a New Data Structure for

عملیات جستجو

31 از 19

Page 19: Multi-Prefix Trie: a New Data Structure for

مثالی برای عملیات جستجو

• DA=11010010 • DA=00100110

طوالنی ترین پیشوند تطبیقی

31 از 20

Page 20: Multi-Prefix Trie: a New Data Structure for

حذف

31 از 21

Page 21: Multi-Prefix Trie: a New Data Structure for

مثالی برای عملیات حذف

• Delete 01*

31 از 22

Page 22: Multi-Prefix Trie: a New Data Structure for

• Delete 110100*

مثالی برای عملیات حذف

110100

31 از 23

Page 23: Multi-Prefix Trie: a New Data Structure for

درخت چند پیشوندی شاخص دار

ابتFث داده شFده اسFت،شFاخص جFدول aطول

2^a دخلFFم هFFر چنانکFFه دارد محتFFوا

tab[b0b1 . . . bα−1] رFاره گFک اشFامل یFش

است.

31 از 24

Page 24: Multi-Prefix Trie: a New Data Structure for

تعریف تابع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

Page 25: Multi-Prefix Trie: a New Data Structure for

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

Page 26: Multi-Prefix Trie: a New Data Structure for

• We choose k=2

31 از 27

Page 27: Multi-Prefix Trie: a New Data Structure for

31 از 28

Page 28: Multi-Prefix Trie: a New Data Structure for

31 از 29

Page 29: Multi-Prefix Trie: a New Data Structure for

Update time

31 از30

Page 30: Multi-Prefix Trie: a New Data Structure for

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.