approximate string matching

48
م ی ح ر ل ا ن م ح ر ل له ا ل م ا س ب1

Upload: nazi-asadpour

Post on 14-Apr-2017

143 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Approximate String Matching

1

بسم الله الرحمن الرحیم

Page 2: Approximate String Matching

2

نازی اسدپوردزکی استاد : آقای دکتر مهدی صادق زاده

علوم تحقیقات خوزستان1393زمستان

Page 3: Approximate String Matching

3

Parallel Algorithm for Approximate StringMatching with k Differences

الگوریتم موازی برای تطبیق رشته ی تقریبی با استفاده ازk اختالف

Page 4: Approximate String Matching

فهرست مطالب4

مقدمه بیان مسئله الگوریتم ترتیبی الگوریتم موازی

Page 5: Approximate String Matching

5 مقدمه

تطبیق رشته ، یکی از مسائل بنیادین در علوم کامپیوتر محسوب می شود

اغلب بررسی های اولیه بر "تطبیق الگوی صحیح و دقیق" تمرکز داشتند

با گسترش فناوری اطالعات مدرن، مشخص شد که تطبیق رشته ی دقیق نمی تواند نیازهای مختلف را در کاربردهای

.واقعی برآورده سازددر نتیجه، ضرورت تطبیق رشته ی تقریبی با برخی تفاوت ها

.به وجود آمد که مناسب تر به نظر می رسید

Page 6: Approximate String Matching

6کاربردهای تطبیق رشته ی

تقریبی

مقایسه ژنوم و آنالیز ترتیبیتشخیص ویروستشخیص صدا تشخیص الگوجستجوی فایل....وزمینه های بسیاردیگر

Page 7: Approximate String Matching

مقدمه7

Levenshtein ( سه عملیات عدم تطابق را 2در مقاله ی )تعریف کرد که عبارتند از: درج، جایگذاری و حذف.

وی از این عملیات برای تعریف فاصله ی ویرایش استفاده کرد

بر مبنای K-differenceمساله ی تطبیق رشته ی تقریبی فاصله ی ویرایش ارائه شده است که می تواند محل نهایی

رشته ها در یک متن را بیابد،q با این شرط که فاصله ی نباشد.kویرایش برای الگو بیشتر از

Page 8: Approximate String Matching

بیان مسئله 8

)فاصله ویرایش(: 1تعریف

، فاصله Y=Y[0,..,m-1] و X=X[0,..,n-1]برای رشته برابر است با حداقل اجرای X, Y بین )Edit)X,Yویرایش

به Y به Xتعداد عملیات ویرایش برای تغییر رشته ی صورت زیر:

حذف کاراکتر از X درج کاراکتر درX جانشین کردن کاراکتر خاصی درXبه جای کاراکتر دیگر

Page 9: Approximate String Matching

9 )مساله ی تطبیق رشته ی 2تعریف

اختالف(:Kتقریبی با

بqا شرط و متqن و : الگوی داریqم و از یqک مجموعه با kکاراکترهqا اسqت و همچنیqن یqک عدد صqحیح غیرمنفqی

شرط است و T است و هدف یافتن تمام مکان های در متن

داریم: به گونه ای که برای فاصله ی ویرایش داریم:

Edit( P[0,…,m-1],T[ ,…,j-1] ) ≤ k𝑙

Page 10: Approximate String Matching

10

ایده ی اصلی فاصله ی ویرایش محاسباتی براساس روش بیان شده است:1برنامه نویسی پویا، در معادله ی

Page 11: Approximate String Matching

11

D[i , j]

و Pاز الگوی حداقل فاصله ویرایش را بین زیر رشته را نشان می دهد . را با شرط Tزیر رشته ی از متن

Page 12: Approximate String Matching

12

ماتریس فاصله ویرایش )مسیر ردیابی 1شکل و متن P=ACTACGبازگشتی( را برای الگوی

T=TAGTACG .نشان می دهد

Page 13: Approximate String Matching

اثبات درستی فاصله ویرایش 13

رابه p[1..i]ناوردایی این است که ما بتوانیم قسمت اولیه t[l..j] با شرط

تبدیل کنیم ،این ناوردایی تا d[i,j]را با حداقل عملیات های

زمانی برقرار است :

Page 14: Approximate String Matching

اثبات درستی فاصله ویرایش 14

برای سطر صفر الگویی برای تطبیق نداریم بنابراین 1.نتیجه صفر می شود.

If i=0 D[i,j]=0در ابتدا این موضوع در سطر و ستون درست است 2.

، با t[1..0 می تواند به یک رشته تهی s[1..i]چون که [، تبدیل iبه سادگی بیرون انداختن همه کاراکترهای 

شود.If j=0 D[i,j]= i

Page 15: Approximate String Matching

اثبات درستی فاصله ویرایش 15

عملیات k در  t[l..j-1 را به p[1..i-1]اگر می توانستیم [3. در t[j] و p[i]تبدیل کنیم، در صورت یکسان بودن

تبدیل کنیم.p را به s عملیات می توان kهمان If T[j-1,i-1] = P[i-1] D[i,j] = D[i-1,j-1]

Page 16: Approximate String Matching

اثبات درستی فاصله ویرایش 16

سه فاصله مینیمم به دست می آید، که هر کدام محتمل هستند:4.] تیمqر می توانسqاگp[1..i] هqرا ب t[l..j-1 در k ،ل کنیمqعملیات تبدی 

] سqادگی بqه t[j]آنگاه به رسqیدن برای آqن از بعqد را t[1..j عمل، اضافه می کردیم. k+1در 

] تیمqر می توانسqاگp[1..i-1] هqرا ب t[l..j در k ،ل کنیمqعملیات تبدی انجام می دادیqم و سپس در p[1..iآنگاه همیqن عqملیات را روی [

 حذف می کردیم.k+1 اصلی را در  p[iانتها [] p[1..i-1]اگqر می توانسqتیم بqه را t[l..j-1  در k تبدیل عملیات

] روی را عqملیات آنگاه همیqن و سپس p[1..iکنیqم، دهیqم انجام اصqلی در انتهqا در صqورت نیاز، که نیاز p[i بqه جای t[j]جایگزینqی [

 عملیات دارد.k+1به 

D[i,j]=1+min{D[i-1,j],D[i-1,j-1],D[i,j-1]}

Page 17: Approximate String Matching

17

d[i,jایqن اثبات نمی توانqد ایqن موضوع را کqه عددی که در [در حقیقت کوچکترین عدد اسqت را تصدیق کند ، نشان دادن شامل برهان و ، اسqqت مشکqqل بسqqیار موضوع ایqqن

کوچکتر از d[i,jخلqف اسqت کqه در آqن مqا فرض می کنیqم [استفاده ایqن می توان از و ، سqه فاصqله مطرح شده اسqت

کرد تا نشان دهیم یکی از سه فاصله مینیمم نیست.

Page 18: Approximate String Matching

مثال18

T= TAGTP= ACT

Page 19: Approximate String Matching

19این در ویرایش فاصله برای مثال

الگوریتم

T= TAGT

P=ACT

2

13

2

Edit(P,T)

min

Page 20: Approximate String Matching

الگوریتم ترتیبی 20

1. for i=0:m2. d(0,i)=0;3. end4. for j=0:n5. d(i,0)=i;6. end7. for i=1:n8. for j=1:m9. if p(i-1)==t(j-1)10. d(i,j)=d(i-1,j-1);11. else12. d(i,j)=minmum(d(i,j-1),d(i-1,j),d(i-1,j-1))+1;13. end14. end15. end

O(nm)

O(n)

O(m)

Page 21: Approximate String Matching

21تحلیل الگوریتم ترتیبی تطبیق

اختالفKتقریبی رشته با

T(n)=O(n)+O(m)+O(mn)=O(mn)

Page 22: Approximate String Matching

ترتیبی 22 الگوریتم مورد در نکاتی

کارایی روش برنامه نویسی پویا برای حل این مساله ایده آل نیست.

اما روش سنتی ساده وهوشمند است بنابراین کاربرد گسترده ای دارد.

Page 23: Approximate String Matching

23

Page 24: Approximate String Matching

24الگوریتم موازی برای تطبیقU رشته ی

اختالفkتقریبی با

فرمول محاسqبه 1طبqق D[i , j] ، ویرایش ماتریqس از وابسqته بqه مقادیری اسqت کqه در همان سqطر یqا همان ستون

قرار دارند. D[i-1, j], D[i-1, j-1], D[i, j-1]

با شرط بqه صورت توانqد نمqی کqه اسqت ترتیبqی یqک روش بنابرایqن

موازی بیان شود .ایqن مقالqه تکنیکqی برای حذف وابسqتگی داده ارائqه می در

شود.

Page 25: Approximate String Matching

الف.حذف وابستگی داده25

الف- حذف وابستگی داده: حداکثر اختالف بین مولفه های مجاور در ماتریس 1تئوری

است. 1فاصله ی ویرایش با شرط برابر

Page 26: Approximate String Matching

الف.حذف وابستگی داده26

برای محاسبه ی موازی داده های هر سطر از ماتریس فاصله ی ویرایش، نیاز است که وابستگی داده را تغییر

با آنالیز وابستگی داده می توانیم محاسبات زیر را دهیم. کاهش دهیم:1براساس فرمول

یک مقدار ثابت j=0 ،D[i ,j] و i=0برای 1.است.وابستگی داده تغییری نمی کند.

برای و ، وابستگی داده تغییری نمی کند2. .

Page 27: Approximate String Matching

الف.حذف وابستگی داده27

برای داریم:3.

برای محاسبه ی ، مقدار که وابسته به همان سطر است، باید ارائه شود و وابستگی داده باید تغییر پیدا کند.

D[i ,j] =1+min{D[i-1,j-1], D[i-1 ,j], D[i ,j-1]}

Page 28: Approximate String Matching

28

در تمامی موارد باال،برای

محاسبه می N ≤ j-1≥ 1 وبا شرط Nرا فقط بر مبنای D[i , j]مقدار را به صورت زیر بازنویسی کرد : 1کنیم و می توان فرمول

D[i-1, j-1] ≤ D[i , j-1] < D[i-1, j-1]

Page 29: Approximate String Matching

الف.حذف وابستگی داده29

فرمول و 2براسqاس رفت مسqیر در کqه اسqت ، مشخqص مناسبی N، بایqد D[i, j-1]برگشqت تکراری برای محاسqبه ی

پیدا شود، به گونه ای که برقرار باشد .

Page 30: Approximate String Matching

الف.حذف وابستگی داده30

را مqی سqازیم کqه بعqد آqن، اسqت که اندازه ی Xماتریqس است. T طول متن n است و مجموعه کاراکترهای

ی کاراکترهای Q[0, …., ||-1]آرایqqه معنای به محاسبه کرد:3 را می توان براساس فرمول X[i, j]است.

Page 31: Approximate String Matching

31

، به دلیل عدم وابستگی داده Xبرای محاسبه ی ماتریس های هر سطر، می توان این داده ها را به صورت موازی

محاسبه کرد.

Page 32: Approximate String Matching

32

را به صورت زیر 2، می توان فرمول Xبراساس ماتریس بازنویسی کرد:

Page 33: Approximate String Matching

33

)با شرط ( در آرایه ی P[i-1]محلی است که Cدر این جا، Q داده های 4 قرار گرفته است. براساس فرمول ،i امین

سطر در ماتریس فاصله ی ویرایش، فقط وابسته به داده امین سطر هستند و به تئوری زیر می رسیم. (i-1)های

امین سطر در ماتریس iمحاسبه ی داده های : 2تئوری امین (i-1)فاصله ی ویرایش، فقط وابسته به داده های

سطر است .

Page 34: Approximate String Matching

ب .الگوریتم موازی34

Page 35: Approximate String Matching

35قسمت اول الگوریتم موازی :

Xمحاسبه ماتریس

1. FOR i=0 to |∑| -1 PARALLEL DO FOR i=0 to n DO compute X[i,j] according formula(3); END FOR END FOR PARALLEL

O(n)

O(n)

Page 36: Approximate String Matching

36قسمت دوم الگوریتم موازی :

Dمحاسبه ماتریس

2. FOR i=0 to m DO FOR i=0 to n PARALLEL DO compute D[i,j] according formula(4); END FOR PARALLEL Barrier synchronization END FOR

O(1)

O(m)

Page 37: Approximate String Matching

قسمت سوم الگوریتم موازی 37

3.FOR j=0 to n-1 PARALLEL DO IF (D[m,j+1] ≤ K) Result[j]← j; ELSE Result[j]← -1; END FOR PARALLEL

O(1)

Page 38: Approximate String Matching

تحلیل الگوریتم موازی38

T(n)=1 + 2 + 3

T(n)=t(1)+t(2)+t(3)=O(n) +O(m) +O(1)=O(m+n)

O(m+n) O(n)𝑚≪𝑛

Page 39: Approximate String Matching

تحلیل الگوریتم موازی39

طول متن n( n) درجه ی موازی سازی الگوریتم :

طول الگو m+1( m) تعداد همزمان سازی ها :

الگوریتم های قبلی

m+1بیشترین درجه موازی الگوریتم :

n+m+1تعداد همزمان سازی های الگوریتم :

Page 40: Approximate String Matching

تحلیل الگوریتم موازی40

بنابراین این الگوریتم موازی می تواند سبب کاهش شدید زمان محاسباتی شود.

Page 41: Approximate String Matching

1مثالی از اجرای الگوریتم 41

Page 42: Approximate String Matching

42نمونه اجرا در نرم افزار متلب

(X)ماتریس

Page 43: Approximate String Matching

43نمونه اجرا در نرم افزار متلب

(D)ماتریس

Page 44: Approximate String Matching

44نمونه اجرا در نرم افزار متلب

)ماتریس نتیجه(

Page 45: Approximate String Matching

نتیجه گیری45

با تقریبqی ی رشتqه تطبیqق ی مسqاله اختالف، Kبرای یک مقالqه ایqن در پویqا، نویسqی برنامqه روش براسqاس آن سqرعت افزایqش و شود مqی پیشنهاد موازی الگوریتqم توانqد مولفqه های هر الگوریتqم مqی ایqن بررسqی مqی شود. سqطر از ماتریqس فاصqله ی ویرایqش را بqه صورت موازی و موازی الگوریتم کند. محاسqبه داده، وابسqتگی حذف بqا الگوریتم موازی قطری، بqا ایqن مقالqه، در قیاس پیشنهادی کqه تصqور مqی کنیqم بهتریqن الگوریتqم موازی اسqت کqه تا کنون

اختالف ارائqه شده است، Kبرای تطبیqق رشتqه ی تقریبqی بqا افزایش n بqه m+1مqی توانqد درجqه ی موازی سqازی را از

مqی رساند. m+1 بqه n+m+1دهqد و همزمان سqازی را از بqه عنوان داده های تجربی در DNAمqا از دنبالqه های واقعqی

این مقاله استفاده کردیم

Page 46: Approximate String Matching

منابع46

[1] L. Z., B. J., and J. T. A software system for gene sequence databaseconstruction. Engineering in Medicine and Biology Society, 2005.[2] L. V.I. Binary codes capable of correcting deletions, insertions andreversals. ov. Phys. Dokl, 1996.10.[3] G. Navarro and R. Baeza-yates. A hybrid indexing method for approximatestring matching. Journal of Discrete Algorithms, 1(1):21–49, 2000.[4] Z. C and C. GL. Parallel algorithms for approximate string matching onpram and larpbs. Journal of software, 15:159–169, 2004.[5] S. P. The theory and computation of evolutionary distance:patternrecognition. Journal of Algorithms, pages 359–373, 1980.1.[6] G. Navarro. A guided tour to approximate string matching. ACMComputing Surveys, 33(1):31–88, 2000.[7] B.-Y. Z. Y.S.Jayram and R. Krauthgamer. Approximating Edit DistanceEfficiently. Computer Science, 2004.10.[8] K. A. T. MIURA and I. SHIOYA. Approximate String Matching UsingMarkovian Distance. Algorithms and Programming, 2010.[9] D. S. J. Zibert and N. Pavesic. An edit-distance model for the approximatematching of timed strings. Pattern Analysis and MachineIntelligence, 31(4):736–741, 2009.

Page 47: Approximate String Matching

منابع47

[9] D. S. J. Zibert and N. Pavesic. An edit-distance model for the approximatematching of timed strings. Pattern Analysis and MachineIntelligence, 31(4):736–741, 2009.[10] L. D. S. Wang and Z. Mei. Approximate Address Matching. InternationalConference on P2P, Parallel, Grid, Cloud and Internet Computing,2010.10.[11] H.-C. Lee and E. F. RMESH algorithms for parallel string matching.Los Alamitos: IEEE Computer Society Press, 1997.[12] A. H. Wright and Y. Jiang. O(k) parallel algorithms for approximatestring matching. ournal of Neural Parallel and Scientific Computation,1993.1.[13] S. Xiao and W. chun Feng. Inter-Block GPU communication via fastbarrier synchronization. 24th IEEE International Parallel DistributedProcessing Symposium, 2010.[14] K. C. K. G. Margaritis. String Matching on a Multicore GPU usingCUDA. 13th Panhellenic Conference on Informatics, 2009.

Page 48: Approximate String Matching

48

Thank YouVery much….