approximate string matching
TRANSCRIPT
1
بسم الله الرحمن الرحیم
2
نازی اسدپوردزکی استاد : آقای دکتر مهدی صادق زاده
علوم تحقیقات خوزستان1393زمستان
3
Parallel Algorithm for Approximate StringMatching with k Differences
الگوریتم موازی برای تطبیق رشته ی تقریبی با استفاده ازk اختالف
فهرست مطالب4
مقدمه بیان مسئله الگوریتم ترتیبی الگوریتم موازی
5 مقدمه
تطبیق رشته ، یکی از مسائل بنیادین در علوم کامپیوتر محسوب می شود
اغلب بررسی های اولیه بر "تطبیق الگوی صحیح و دقیق" تمرکز داشتند
با گسترش فناوری اطالعات مدرن، مشخص شد که تطبیق رشته ی دقیق نمی تواند نیازهای مختلف را در کاربردهای
.واقعی برآورده سازددر نتیجه، ضرورت تطبیق رشته ی تقریبی با برخی تفاوت ها
.به وجود آمد که مناسب تر به نظر می رسید
6کاربردهای تطبیق رشته ی
تقریبی
مقایسه ژنوم و آنالیز ترتیبیتشخیص ویروستشخیص صدا تشخیص الگوجستجوی فایل....وزمینه های بسیاردیگر
مقدمه7
Levenshtein ( سه عملیات عدم تطابق را 2در مقاله ی )تعریف کرد که عبارتند از: درج، جایگذاری و حذف.
وی از این عملیات برای تعریف فاصله ی ویرایش استفاده کرد
بر مبنای K-differenceمساله ی تطبیق رشته ی تقریبی فاصله ی ویرایش ارائه شده است که می تواند محل نهایی
رشته ها در یک متن را بیابد،q با این شرط که فاصله ی نباشد.kویرایش برای الگو بیشتر از
بیان مسئله 8
)فاصله ویرایش(: 1تعریف
، فاصله Y=Y[0,..,m-1] و X=X[0,..,n-1]برای رشته برابر است با حداقل اجرای X, Y بین )Edit)X,Yویرایش
به Y به Xتعداد عملیات ویرایش برای تغییر رشته ی صورت زیر:
حذف کاراکتر از X درج کاراکتر درX جانشین کردن کاراکتر خاصی درXبه جای کاراکتر دیگر
9 )مساله ی تطبیق رشته ی 2تعریف
اختالف(:Kتقریبی با
بqا شرط و متqن و : الگوی داریqم و از یqک مجموعه با kکاراکترهqا اسqت و همچنیqن یqک عدد صqحیح غیرمنفqی
شرط است و T است و هدف یافتن تمام مکان های در متن
داریم: به گونه ای که برای فاصله ی ویرایش داریم:
Edit( P[0,…,m-1],T[ ,…,j-1] ) ≤ k𝑙
10
ایده ی اصلی فاصله ی ویرایش محاسباتی براساس روش بیان شده است:1برنامه نویسی پویا، در معادله ی
11
D[i , j]
و Pاز الگوی حداقل فاصله ویرایش را بین زیر رشته را نشان می دهد . را با شرط Tزیر رشته ی از متن
12
ماتریس فاصله ویرایش )مسیر ردیابی 1شکل و متن P=ACTACGبازگشتی( را برای الگوی
T=TAGTACG .نشان می دهد
اثبات درستی فاصله ویرایش 13
رابه p[1..i]ناوردایی این است که ما بتوانیم قسمت اولیه t[l..j] با شرط
تبدیل کنیم ،این ناوردایی تا d[i,j]را با حداقل عملیات های
زمانی برقرار است :
اثبات درستی فاصله ویرایش 14
برای سطر صفر الگویی برای تطبیق نداریم بنابراین 1.نتیجه صفر می شود.
If i=0 D[i,j]=0در ابتدا این موضوع در سطر و ستون درست است 2.
، با t[1..0 می تواند به یک رشته تهی s[1..i]چون که [، تبدیل iبه سادگی بیرون انداختن همه کاراکترهای
شود.If j=0 D[i,j]= i
اثبات درستی فاصله ویرایش 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]
اثبات درستی فاصله ویرایش 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]}
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ت
کرد تا نشان دهیم یکی از سه فاصله مینیمم نیست.
مثال18
T= TAGTP= ACT
19این در ویرایش فاصله برای مثال
الگوریتم
T= TAGT
P=ACT
2
13
2
Edit(P,T)
min
الگوریتم ترتیبی 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)
21تحلیل الگوریتم ترتیبی تطبیق
اختالفKتقریبی رشته با
T(n)=O(n)+O(m)+O(mn)=O(mn)
ترتیبی 22 الگوریتم مورد در نکاتی
کارایی روش برنامه نویسی پویا برای حل این مساله ایده آل نیست.
اما روش سنتی ساده وهوشمند است بنابراین کاربرد گسترده ای دارد.
23
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ه می در
شود.
الف.حذف وابستگی داده25
الف- حذف وابستگی داده: حداکثر اختالف بین مولفه های مجاور در ماتریس 1تئوری
است. 1فاصله ی ویرایش با شرط برابر
الف.حذف وابستگی داده26
برای محاسبه ی موازی داده های هر سطر از ماتریس فاصله ی ویرایش، نیاز است که وابستگی داده را تغییر
با آنالیز وابستگی داده می توانیم محاسبات زیر را دهیم. کاهش دهیم:1براساس فرمول
یک مقدار ثابت j=0 ،D[i ,j] و i=0برای 1.است.وابستگی داده تغییری نمی کند.
برای و ، وابستگی داده تغییری نمی کند2. .
الف.حذف وابستگی داده27
برای داریم:3.
برای محاسبه ی ، مقدار که وابسته به همان سطر است، باید ارائه شود و وابستگی داده باید تغییر پیدا کند.
D[i ,j] =1+min{D[i-1,j-1], D[i-1 ,j], D[i ,j-1]}
28
در تمامی موارد باال،برای
محاسبه می N ≤ j-1≥ 1 وبا شرط Nرا فقط بر مبنای D[i , j]مقدار را به صورت زیر بازنویسی کرد : 1کنیم و می توان فرمول
D[i-1, j-1] ≤ D[i , j-1] < D[i-1, j-1]
الف.حذف وابستگی داده29
فرمول و 2براسqاس رفت مسqیر در کqه اسqت ، مشخqص مناسبی N، بایqد D[i, j-1]برگشqت تکراری برای محاسqبه ی
پیدا شود، به گونه ای که برقرار باشد .
الف.حذف وابستگی داده30
را مqی سqازیم کqه بعqد آqن، اسqت که اندازه ی Xماتریqس است. T طول متن n است و مجموعه کاراکترهای
ی کاراکترهای Q[0, …., ||-1]آرایqqه معنای به محاسبه کرد:3 را می توان براساس فرمول X[i, j]است.
31
، به دلیل عدم وابستگی داده Xبرای محاسبه ی ماتریس های هر سطر، می توان این داده ها را به صورت موازی
محاسبه کرد.
32
را به صورت زیر 2، می توان فرمول Xبراساس ماتریس بازنویسی کرد:
33
)با شرط ( در آرایه ی P[i-1]محلی است که Cدر این جا، Q داده های 4 قرار گرفته است. براساس فرمول ،i امین
سطر در ماتریس فاصله ی ویرایش، فقط وابسته به داده امین سطر هستند و به تئوری زیر می رسیم. (i-1)های
امین سطر در ماتریس iمحاسبه ی داده های : 2تئوری امین (i-1)فاصله ی ویرایش، فقط وابسته به داده های
سطر است .
ب .الگوریتم موازی34
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)
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)
قسمت سوم الگوریتم موازی 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)
تحلیل الگوریتم موازی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)𝑚≪𝑛
تحلیل الگوریتم موازی39
طول متن n( n) درجه ی موازی سازی الگوریتم :
طول الگو m+1( m) تعداد همزمان سازی ها :
الگوریتم های قبلی
m+1بیشترین درجه موازی الگوریتم :
n+m+1تعداد همزمان سازی های الگوریتم :
تحلیل الگوریتم موازی40
بنابراین این الگوریتم موازی می تواند سبب کاهش شدید زمان محاسباتی شود.
1مثالی از اجرای الگوریتم 41
42نمونه اجرا در نرم افزار متلب
(X)ماتریس
43نمونه اجرا در نرم افزار متلب
(D)ماتریس
44نمونه اجرا در نرم افزار متلب
)ماتریس نتیجه(
نتیجه گیری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ی
این مقاله استفاده کردیم
منابع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.
منابع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.
48
Thank YouVery much….