‫الرحیم‬ ‫الرحمن‬ ‫اهلل‬ ‫بسم‬
1
‫اسدپوردزکی‬ ‫نازی‬
‫استاد‬:‫زاده‬ ‫صادق‬ ‫مهدی‬ ‫دکتر‬ ‫آقای‬
‫خوزستان‬ ‫تحقیقات‬ ‫علوم‬
‫مستان‬‫ز‬1393
2
 Parallel Algorithm for
Approximate String
Matching with k
Differences
‫تطبیق‬ ‫برای‬ ‫موازی‬ ‫الگوریتم‬‫تقریبی‬ ‫ی‬ ‫رشته‬
‫از‬ ‫استفاده‬ ‫با‬k‫اختالف‬
3
‫مطالب‬ ‫فهرست‬
‫مقدمه‬
‫مسئله‬ ‫بیان‬
‫ترتیبی‬ ‫الگوریتم‬
‫موازی‬ ‫الگوریتم‬
4
‫مقدمه‬
‫تطبیق‬‫علوم‬ ‫در‬ ‫بنیادین‬ ‫مسائل‬ ‫از‬ ‫یکی‬ ، ‫رشته‬
‫شود‬ ‫می‬ ‫محسوب‬ ‫کامپیوتر‬
‫اغلب‬‫بر‬ ‫اولیه‬ ‫های‬ ‫بررسی‬"‫صحیح‬ ‫الگوی‬ ‫تطبیق‬
‫دقیق‬ ‫و‬"‫تمرکز‬‫داشتند‬
‫که‬ ‫شد‬ ‫مشخص‬ ،‫مدرن‬ ‫اطالعات‬ ‫فناوری‬ ‫گسترش‬ ‫با‬
‫ی‬ ‫رشته‬ ‫تطبیق‬‫نمی‬ ‫دقیق‬‫مختلف‬ ‫نیازهای‬ ‫تواند‬
‫برآورده‬ ‫واقعی‬ ‫کاربردهای‬ ‫در‬ ‫را‬‫سازد‬.
‫با‬ ‫تقریبی‬ ‫ی‬ ‫رشته‬ ‫تطبیق‬ ‫ضرورت‬ ،‫نتیجه‬ ‫در‬
‫به‬ ‫تر‬ ‫مناسب‬ ‫که‬ ‫آمد‬ ‫وجود‬ ‫به‬ ‫ها‬ ‫تفاوت‬ ‫برخی‬
‫رسید‬ ‫می‬ ‫نظر‬.
5
‫رشته‬ ‫تطبیق‬ ‫کاربردهای‬
‫تقریبی‬ ‫ی‬
‫ترتیبی‬ ‫آنالیز‬ ‫و‬ ‫ژنوم‬ ‫مقایسه‬
‫ویروس‬ ‫تشخیص‬
‫صدا‬ ‫تشخیص‬
‫الگو‬ ‫تشخیص‬
‫فایل‬ ‫جستجوی‬
‫بسیاردیگر‬ ‫های‬ ‫وزمینه‬....
6
‫مقدمه‬
Levenshtein‫ی‬ ‫مقاله‬ ‫در‬(2)‫عملیات‬ ‫سه‬
‫از‬ ‫عبارتند‬ ‫که‬ ‫کرد‬ ‫تعریف‬ ‫را‬ ‫تطابق‬ ‫عدم‬:
‫حذف‬ ‫و‬ ‫جایگذاری‬ ،‫درج‬.
‫ی‬ ‫فاصله‬ ‫تعریف‬ ‫برای‬ ‫عملیات‬ ‫این‬ ‫از‬ ‫وی‬
‫استفاده‬ ‫ویرایش‬‫کرد‬
‫تقریبی‬ ‫ی‬ ‫رشته‬ ‫تطبیق‬ ‫ی‬ ‫مساله‬K-
difference‫ویرایش‬ ‫ی‬ ‫فاصله‬ ‫مبنای‬ ‫بر‬
‫نهایی‬ ‫محل‬ ‫تواند‬ ‫می‬ ‫که‬ ‫است‬ ‫شده‬ ‫ارائه‬
‫شرط‬ ‫این‬ ‫با‬ ،‫بیابد‬ ‫را‬ ‫متن‬ ‫یک‬ ‫در‬ ‫ها‬ ‫رشته‬
‫از‬ ‫بیشتر‬ ‫الگو‬ ‫برای‬ ‫ویرایش‬ ‫ی‬ ‫فاصله‬ ‫که‬k
‫نباشد‬.
7
‫مسئله‬ ‫بیان‬
‫تعریف‬1(‫ویرایش‬ ‫فاصله‬:)
‫برای‬‫رشته‬X=X[0,..,n-1]‫و‬Y=Y[0,..,m-
1]،‫ویرایش‬ ‫فاصله‬Edit(X,Y)‫بین‬X, Y
‫با‬ ‫است‬ ‫برابر‬‫عملیات‬ ‫تعداد‬ ‫اجرای‬ ‫حداقل‬
‫ی‬ ‫رشته‬ ‫تغییر‬ ‫برای‬ ‫ویرایش‬X‫به‬Y‫صورت‬ ‫به‬
‫زیر‬:
‫از‬ ‫کاراکتر‬ ‫حذف‬X
‫در‬ ‫کاراکتر‬ ‫درج‬X
‫در‬ ‫خاصی‬ ‫کاراکتر‬ ‫کردن‬ ‫جانشین‬X‫جای‬ ‫به‬
‫دیگر‬ ‫کاراکتر‬
8
‫تعریف‬2(‫ی‬ ‫رشته‬ ‫تطبیق‬ ‫ی‬ ‫مساله‬
‫با‬ ‫تقریبی‬K‫اختالف‬:)
‫الگوی‬𝑃 = 𝑃[0, … ,𝑚 − 1]‫و‬‫متن‬𝑇 = 𝑇[0, … ,𝑛 − 1]
‫با‬‫شرط‬𝑚 ≪ 𝑛‫و‬𝑃,𝑇 ∈ ∗‫و‬‫داریم‬:‫یک‬
‫مجموعه‬‫از‬‫کاراکترها‬‫است‬‫و‬‫همچنین‬k‫یک‬
‫عدد‬‫صحیح‬‫غیرمنفی‬‫با‬‫شرط‬
0 ≤ 𝑘 ≤ 𝑚‫های‬ ‫مکان‬ ‫تمام‬ ‫یافتن‬ ‫هدف‬ ‫و‬ ‫است‬
𝑙,𝑗 − 1‫متن‬ ‫در‬T‫است‬‫داریم‬ ‫و‬:0 ≤ 𝑙 ≤ 𝑗 − 1
≤ 𝑛 − 1
‫ویرایش‬ ‫ی‬ ‫فاصله‬ ‫برای‬ ‫که‬ ‫ای‬ ‫گونه‬ ‫به‬
‫داریم‬:Edit( P[0,…,m-1],T[𝑙 ,…,j-1] ) ≤ k
9
‫محاسباتی‬ ‫ویرایش‬ ‫ی‬ ‫فاصله‬ ‫اصلی‬ ‫ی‬ ‫ایده‬
‫معادله‬ ‫در‬ ،‫پویا‬ ‫نویسی‬ ‫برنامه‬ ‫روش‬ ‫براساس‬
‫ی‬1‫است‬ ‫شده‬ ‫بیان‬:
10
D[i , j]
‫رشته‬ ‫زیر‬ ‫بین‬ ‫را‬ ‫ویرایش‬ ‫فاصله‬ ‫حداقل‬
𝑷[𝟎, … ,𝒊 − 𝟏]‫الگوی‬ ‫از‬P‫و‬‫ی‬ ‫رشته‬ ‫زیر‬
𝐓[𝐥, … ,𝐣 − 𝟏]‫متن‬ ‫از‬T‫شرط‬ ‫با‬ ‫را‬𝟎 ≤ 𝒍 ≤ 𝒋 − 𝟏
‫دهد‬ ‫می‬ ‫نشان‬ ‫را‬.
11
‫شکل‬1‫ایش‬‫ر‬‫وی‬‫فاصله‬ ‫ماتریس‬(‫بازگشتی‬ ‫دیابی‬‫ر‬‫مسیر‬)‫الگو‬ ‫ای‬‫ر‬‫ب‬ ‫ا‬‫ر‬‫ی‬
P=ACTACG‫و‬‫متن‬T=TAGTACG‫دهد‬ ‫می‬ ‫نشان‬.
12
‫ویرایش‬ ‫فاصله‬ ‫ستی‬‫ر‬‫د‬ ‫اثبات‬
‫قسمت‬ ‫بتوانیم‬ ‫ما‬ ‫که‬ ‫است‬ ‫این‬ ‫ناوردایی‬
‫اولیه‬p[1..i]‫رابه‬t[l..j]‫شرط‬ ‫با‬
0 ≤ 𝑙 ≤ 𝑗 − 1 ≤ 𝑛 − 1
‫های‬ ‫عملیات‬ ‫حداقل‬ ‫با‬ ‫را‬d[i,j]‫کنیم‬ ‫تبدیل‬
‫است‬ ‫برقرار‬ ‫زمانی‬ ‫تا‬ ‫ناوردایی‬ ‫،این‬:
13
‫ویرایش‬ ‫فاصله‬ ‫درستی‬ ‫اثبات‬
.1‫نداریم‬ ‫تطبیق‬ ‫برای‬ ‫الگویی‬ ‫صفر‬ ‫سطر‬ ‫برای‬
‫شود‬ ‫می‬ ‫صفر‬ ‫نتیجه‬ ‫بنابراین‬.
If i=0 D[i,j]=0
.2‫درست‬ ‫ستون‬ ‫و‬ ‫سطر‬ ‫در‬ ‫موضوع‬ ‫این‬ ‫ابتدا‬ ‫در‬
‫که‬ ‫چون‬ ‫است‬[s[1..i‫رشته‬ ‫یک‬ ‫به‬ ‫تواند‬‫می‬
‫تهی‬[t[1..0،‫بیرون‬ ‫سادگی‬ ‫به‬ ‫با‬
‫کاراکترهای‬ ‫همه‬ ‫انداختن‬i،‫شود‬ ‫تبدیل‬.
If j=0 D[i,j]= i
14
‫ویرایش‬ ‫فاصله‬ ‫درستی‬ ‫اثبات‬
.3‫توانستیم‬‫می‬ ‫اگر‬[p[1..i-1‫به‬ ‫را‬
[t[l..j-1‫در‬k،‫کنیم‬ ‫تبدیل‬ ‫عملیات‬‫در‬
‫بودن‬ ‫یکسان‬ ‫صورت‬p[i]‫و‬t[j]‫همان‬ ‫در‬
k‫توان‬ ‫می‬ ‫عملیات‬s‫به‬ ‫را‬p‫تبدیل‬
‫کنیم‬.
If T[j-1,i-1] = P[i-1]
D[i,j] = D[i-1,j-1]
15
‫ویرایش‬ ‫فاصله‬ ‫ستی‬‫ر‬‫د‬ ‫اثبات‬
.4‫دست‬ ‫به‬ ‫مینیمم‬ ‫فاصله‬ ‫سه‬‫آید‬‫می‬‫که‬ ،‫هر‬‫کدام‬
‫محتمل‬‫هستند‬:
‫اگر‬‫توانستیم‬‫می‬[p[1..i‫را‬‫به‬[t[l..j-1
‫در‬k‫عملیات‬‫تبدیل‬،‫کنیم‬‫آنگاه‬‫به‬‫سادگی‬[t[j
‫را‬‫بعد‬‫از‬‫آن‬‫برای‬‫رسیدن‬‫به‬[t[1..j
‫در‬k+1،‫عمل‬‫اضافه‬‫کردیم‬‫می‬.
‫اگر‬‫توانستیم‬‫می‬[p[1..i-1‫را‬‫به‬[t[l..j
‫در‬k‫عملیات‬‫تبدیل‬،‫کنیم‬‫آنگاه‬‫همین‬‫عملیات‬‫را‬
‫روی‬[p[1..i‫انجام‬‫دادیم‬‫می‬‫و‬‫سپس‬‫در‬‫انتها‬
[p[i‫اصلی‬‫را‬‫در‬k+1‫حذف‬‫کردیم‬‫می‬.
‫اگر‬‫توانستیم‬‫می‬[p[1..i-1‫را‬‫به‬[t[l..j-1
‫در‬k‫عملیات‬‫تبدیل‬،‫کنیم‬‫آنگاه‬‫همین‬‫عملیات‬
‫را‬‫روی‬[p[1..i‫انجام‬‫دهیم‬‫و‬‫سپس‬‫جایگزینی‬
[t[j‫به‬‫جای‬[p[i‫اصلی‬‫در‬‫انتها‬‫در‬‫صورت‬،‫نیاز‬
‫که‬‫نیاز‬‫به‬k+1‫عملیات‬‫دارد‬.
D[i,j]=1+min{D[i-1,j],D[i-1,j-1],D[i,j-1]}
16
‫این‬‫اثبات‬‫تواند‬‫نمی‬‫این‬‫موضوع‬‫را‬‫که‬‫عددی‬
‫که‬‫در‬[d[i,j‫در‬‫حقیقت‬‫کوچکترین‬‫عدد‬‫است‬
‫را‬‫تصدیق‬‫کند‬،‫نشان‬‫دادن‬‫این‬‫موضوع‬‫بسیار‬
‫مشکل‬‫است‬،‫و‬‫شامل‬‫برهان‬‫خلف‬‫است‬‫که‬‫در‬‫آن‬
‫ما‬‫فرض‬‫کنیم‬‫می‬[d[i,j‫کوچکتر‬‫از‬‫سه‬‫فاصله‬
‫مطرح‬‫است‬‫شده‬،‫و‬‫از‬‫این‬‫توان‬‫می‬‫استفاده‬
‫کرد‬‫تا‬‫نشان‬‫دهیم‬‫یکی‬‫از‬‫سه‬‫فاصله‬‫مینیمم‬
‫نیست‬.
17
‫مثال‬
T= TAGT
P= ACT
18
‫الگوریت‬ ‫این‬ ‫در‬ ‫ویرایش‬ ‫فاصله‬ ‫برای‬ ‫مثال‬‫م‬
T= TAGT
P=ACT
2
1
3
2
Edit(P,T)
min
19
‫ترتیبی‬ ‫یتم‬‫ر‬‫الگو‬
1. for i=0:m
2. d(0,i)=0;
3. end
4. for j=0:n
5. d(i,0)=i;
6. end
7. for i=1:n
8. for j=1:m
9. if p(i-1)==t(j-1)
10. d(i,j)=d(i-1,j-1);
11. else
12. d(i,j)=minmum(d(i,j-1),d(i-1,j),d(i-1,j-1))+1;
13. end
14. end
15. end
O(nm)
O(n)
O(m)
20
‫شت‬‫ر‬ ‫تقریبی‬ ‫تطبیق‬ ‫ترتیبی‬ ‫یتم‬‫ر‬‫الگو‬ ‫تحلیل‬‫با‬ ‫ه‬K‫اختالف‬
T(n)=O(n)+O(m)+O(mn)=O(mn)
21
‫ترتیبی‬ ‫الگوریتم‬ ‫مورد‬ ‫در‬ ‫نکاتی‬
‫این‬ ‫حل‬ ‫برای‬ ‫پویا‬ ‫نویسی‬ ‫برنامه‬ ‫روش‬ ‫کارایی‬
‫نیست‬ ‫آل‬ ‫ایده‬ ‫مساله‬.
‫بنابراین‬ ‫است‬ ‫وهوشمند‬ ‫ساده‬ ‫سنتی‬ ‫روش‬ ‫اما‬
‫دارد‬ ‫ای‬ ‫گسترده‬ ‫کاربرد‬.
22
23
‫رشته‬ ‫تطبیق‬ ‫برای‬ ‫موازی‬ ‫الگوریتم‬
‫با‬ ‫تقریبی‬ ‫ی‬k‫اختالف‬
‫طبق‬‫فرمول‬1‫محاسبه‬D[i , j]‫از‬‫ماتریس‬
‫ویرایش‬،‫وابسته‬‫به‬‫مقادیری‬‫است‬‫که‬‫در‬
‫همان‬‫سطر‬‫یا‬‫همان‬‫ستون‬‫قرار‬‫دارند‬.
D[i-1, j], D[i-1, j-1], D[i, j-1]
‫شرط‬ ‫با‬𝟏 ≤ 𝒊 ≤ 𝒎,𝟏 ≤ 𝒋 ≤ 𝒏
‫بنابراین‬‫یک‬‫روش‬‫ترتیبی‬‫است‬‫که‬‫نمی‬‫تواند‬
‫به‬‫صورت‬‫موازی‬‫بیان‬‫شود‬.
‫در‬‫این‬‫مقاله‬‫تکنیکی‬‫برای‬‫حذف‬‫وابستگی‬
‫داده‬‫ارائه‬‫می‬‫شود‬.
24
‫الف‬.‫داده‬ ‫وابستگی‬ ‫حذف‬
‫الف‬-‫داده‬ ‫وابستگی‬ ‫حذف‬
‫تئوری‬1:‫های‬ ‫مولفه‬ ‫بین‬ ‫اختالف‬ ‫حداکثر‬
‫شرط‬ ‫با‬ ‫ویرایش‬ ‫ی‬ ‫فاصله‬ ‫ماتریس‬ ‫در‬ ‫مجاور‬1
≤ 𝑖 ≤ 𝑚,1 ≤ 𝑗 ≤ 𝑛‫برابر‬1‫است‬.
25
‫الف‬.‫داده‬ ‫وابستگی‬ ‫حذف‬
‫برای‬‫از‬ ‫سطر‬ ‫هر‬ ‫های‬ ‫داده‬ ‫موازی‬ ‫ی‬ ‫محاسبه‬
‫که‬ ‫است‬ ‫نیاز‬ ،‫ویرایش‬ ‫ی‬ ‫فاصله‬ ‫ماتریس‬
‫دهیم‬ ‫تغییر‬ ‫را‬ ‫داده‬ ‫وابستگی‬.‫آنالیز‬ ‫با‬
‫را‬ ‫زیر‬ ‫محاسبات‬ ‫توانیم‬ ‫می‬ ‫داده‬ ‫وابستگی‬
‫فرمول‬ ‫براساس‬1‫دهیم‬ ‫کاهش‬:
.1‫برای‬i=0‫و‬j=0،D[i ,j]‫مقدار‬ ‫یک‬
‫است‬ ‫ثابت‬.‫کند‬ ‫نمی‬ ‫تغییری‬ ‫داده‬ ‫وابستگی‬.
.2‫برای‬𝑇[𝑗 − 1] = 𝑃[𝑖 − 1]‫و‬𝐷[𝑖,𝑗] = 𝐷[𝑖 − 1,𝑗
− 1]‫کند‬ ‫نمی‬ ‫تغییری‬ ‫داده‬ ‫وابستگی‬ ،
.
26
‫الف‬.‫داده‬‫وابستگی‬ ‫حذف‬
.3‫برای‬𝑇[𝑗 − 1] ≠ 𝑃[𝑖 − 1]‫داریم‬:
‫ی‬ ‫محاسبه‬ ‫برای‬𝐷[𝑖,𝑗]‫مقدار‬ ،𝐷[𝑖,𝑗 − 1]‫که‬
‫سطر‬ ‫همان‬ ‫به‬ ‫وابسته‬
‫باید‬ ‫داده‬ ‫وابستگی‬ ‫و‬ ‫شود‬ ‫ارائه‬ ‫باید‬ ،‫است‬
‫کند‬ ‫پیدا‬ ‫تغییر‬.
D[i ,j] =1+min{D[i-1,j-1], D[i-1
,j], D[i ,j-1]}
27
‫باال،برای‬ ‫موارد‬ ‫تمامی‬ ‫در‬
‫مقدار‬D[i , j]‫مبنای‬ ‫بر‬ ‫فقط‬ ‫را‬N‫شرط‬ ‫وبا‬1≤ N ≤
j-1‫فرمول‬ ‫توان‬ ‫می‬ ‫و‬ ‫کنیم‬ ‫می‬ ‫محاسبه‬1‫زیر‬ ‫صورت‬ ‫به‬ ‫را‬
‫کرد‬ ‫بازنویسی‬:
D[i-1, j-1] ≤ D[i , j-1] <
D[i-1, j-1]
28
‫الف‬.‫داده‬‫وابستگی‬ ‫حذف‬
‫براساس‬‫فرمول‬2،‫مشخص‬‫است‬‫که‬‫در‬‫مسیر‬‫رفت‬
‫و‬‫برگشت‬‫تکراری‬‫برای‬‫محاسبه‬‫ی‬D[i, j-1]،
‫باید‬N‫مناسبی‬‫پیدا‬‫شود‬،
‫به‬‫گونه‬‫ای‬‫که‬
1 ≤ 𝑁 ≤ 𝑗 − 1‫برقرار‬‫باشد‬.
29
‫الف‬.‫داده‬‫وابستگی‬ ‫حذف‬
‫ماتریس‬X‫را‬‫می‬‫سازیم‬‫که‬‫بعد‬،‫آن‬|| × (𝑛
+ 1)‫است‬‫که‬||‫اندازه‬‫ی‬‫مجموعه‬‫کاراکترهای‬
‫است‬‫و‬n‫طول‬‫متن‬T‫است‬.
‫آرایه‬‫ی‬Q[0, …., ||-1]‫به‬‫معنای‬
‫کاراکترهای‬‫است‬.X[i, j]‫را‬‫می‬‫توان‬
‫براساس‬‫فرمول‬3‫محاسبه‬‫کرد‬:
30
‫ماتریس‬ ‫ی‬ ‫محاسبه‬ ‫برای‬X‫عدم‬ ‫دلیل‬ ‫به‬ ،
‫این‬ ‫توان‬ ‫می‬ ،‫سطر‬ ‫هر‬ ‫های‬ ‫داده‬ ‫وابستگی‬
‫موازی‬ ‫صورت‬ ‫به‬ ‫را‬ ‫ها‬ ‫داده‬‫محاسبه‬‫کرد‬.
31
‫ماتریس‬ ‫براساس‬X‫فرمول‬ ‫توان‬ ‫می‬ ،2‫به‬ ‫را‬
‫کرد‬ ‫بازنویسی‬ ‫زیر‬ ‫صورت‬:
32
،‫جا‬ ‫این‬ ‫در‬C‫که‬ ‫است‬ ‫محلی‬P[i-1](‫شرط‬ ‫با‬1 ≤ 𝑖 ≤ 𝑚)‫ی‬‫ایه‬‫ر‬‫آ‬‫در‬Q‫ار‬‫ر‬‫ق‬
‫است‬ ‫گرفته‬.‫ل‬‫فرمو‬ ‫اساس‬‫ر‬‫ب‬4‫های‬‫داده‬ ،i،‫ایش‬‫ر‬‫وی‬‫ی‬ ‫فاصله‬‫ماتریس‬ ‫در‬ ‫سطر‬‫امین‬
‫های‬‫داده‬ ‫به‬ ‫وابسته‬‫فقط‬(i-1)‫به‬ ‫و‬ ‫هستند‬ ‫سطر‬‫امین‬‫ی‬‫ر‬‫تئو‬‫سیم‬‫ر‬ ‫می‬ ‫یر‬‫ز‬.
‫ی‬‫ر‬‫تئو‬2:‫های‬‫داده‬ ‫ی‬ ‫محاسبه‬i‫وابس‬‫فقط‬ ،‫ایش‬‫ر‬‫وی‬ ‫ی‬‫فاصله‬‫ماتریس‬ ‫در‬ ‫سطر‬‫امین‬‫ته‬
‫های‬‫داده‬ ‫به‬(i-1)‫است‬ ‫سطر‬ ‫امین‬.
33
‫ب‬.‫موازی‬ ‫الگوریتم‬ 34
‫ی‬‫مواز‬ ‫یتم‬‫ر‬‫الگو‬ ‫ل‬‫او‬‫قسمت‬:‫ماتریس‬ ‫محاسبه‬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)
35
‫موازی‬ ‫الگوریتم‬ ‫دوم‬ ‫قسمت‬:
‫ماتریس‬ ‫محاسبه‬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)
36
‫قسمت‬‫سوم‬‫موازی‬ ‫الگوریتم‬
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)
37
‫موازی‬ ‫الگوریتم‬ ‫تحلیل‬
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)
𝑚 ≪ 𝑛
38
‫موازی‬ ‫الگوریتم‬ ‫تحلیل‬
‫الگوریتم‬ ‫سازی‬ ‫موازی‬ ‫ی‬ ‫درجه‬:n(n‫طول‬
‫متن‬)
‫ها‬ ‫سازی‬ ‫همزمان‬ ‫تعداد‬:m+1(m‫الگو‬ ‫طول‬
)
‫الگوریتم‬‫قبلی‬ ‫های‬
‫الگوریتم‬ ‫موازی‬ ‫درجه‬ ‫بیشترین‬:m+1
‫الگوریتم‬ ‫های‬ ‫سازی‬ ‫همزمان‬ ‫تعداد‬:n+m+1
39
‫تحلیل‬‫موازی‬ ‫الگوریتم‬
‫سبب‬ ‫تواند‬ ‫می‬ ‫موازی‬ ‫الگوریتم‬ ‫این‬ ‫بنابراین‬
‫شود‬ ‫محاسباتی‬ ‫زمان‬ ‫شدید‬ ‫کاهش‬.
40
‫الگوریتم‬ ‫اجرای‬ ‫از‬ ‫مثالی‬1 41
‫متلب‬ ‫ار‬‫ز‬‫اف‬ ‫نرم‬ ‫در‬ ‫اجرا‬ ‫نمونه‬(‫ماتریس‬X) 42
‫متلب‬ ‫ار‬‫ز‬‫اف‬ ‫نرم‬ ‫در‬ ‫اجرا‬ ‫نمونه‬(‫ماتریس‬D) 43
‫متلب‬ ‫ار‬‫ز‬‫اف‬ ‫نرم‬ ‫در‬ ‫اجرا‬ ‫نمونه‬(‫ماتریس‬‫نتیجه‬) 44
‫گیری‬ ‫نتیجه‬
،‫اختالف‬‫براساس‬‫روش‬‫برنامه‬‫نویسی‬،‫پویا‬‫در‬
‫این‬‫مقاله‬‫یک‬‫الگوریتم‬‫موازی‬‫پیشنهاد‬‫می‬
‫شود‬‫و‬‫افزایش‬‫سرعت‬‫آن‬‫بررسی‬‫می‬‫شود‬.‫این‬
‫الگوریتم‬‫می‬‫تواند‬‫مولفه‬‫های‬‫هر‬‫سطر‬‫از‬
‫ماتریس‬‫فاصله‬‫ی‬‫ویرایش‬‫را‬‫به‬‫صورت‬‫موازی‬‫و‬
‫با‬‫حذف‬‫وابستگی‬،‫داده‬‫محاسبه‬‫کند‬.
‫الگوریتم‬‫موازی‬‫پیشنهادی‬‫این‬،‫مقاله‬‫در‬
‫قیاس‬‫با‬‫الگوریتم‬‫موازی‬،‫قطری‬‫که‬‫تصور‬‫می‬
‫کنیم‬‫بهترین‬‫الگوریتم‬‫موازی‬‫است‬‫که‬‫تا‬
‫کنون‬‫برای‬‫تطبیق‬‫رشته‬‫ی‬‫تقریبی‬‫با‬K‫اختالف‬
‫ارائه‬‫شده‬،‫است‬‫می‬‫تواند‬‫درجه‬‫ی‬‫موازی‬
‫سازی‬‫را‬‫از‬m+1‫به‬n‫افزایش‬‫دهد‬‫و‬‫همزمان‬
‫سازی‬‫را‬‫از‬n+m+1‫به‬m+1‫می‬‫رساند‬.‫ما‬‫از‬
‫دنباله‬‫های‬‫واقعی‬DNA‫به‬‫عنوان‬‫داده‬‫های‬
‫تجربی‬‫در‬‫این‬‫مقاله‬‫استفاده‬‫کردیم‬
45
‫منابع‬
[1] L. Z., B. J., and J. T. A software system for gene sequence database
construction. Engineering in Medicine and Biology Society, 2005.
[2] L. V.I. Binary codes capable of correcting deletions, insertions and
reversals. ov. Phys. Dokl, 1996.10.
[3] G. Navarro and R. Baeza-yates. A hybrid indexing method for approximate
string matching. Journal of Discrete Algorithms, 1(1):21–49, 2000.
[4] Z. C and C. GL. Parallel algorithms for approximate string matching on
pram and larpbs. Journal of software, 15:159–169, 2004.
[5] S. P. The theory and computation of evolutionary distance:pattern
recognition. Journal of Algorithms, pages 359–373, 1980.1.
[6] G. Navarro. A guided tour to approximate string matching. ACM
Computing Surveys, 33(1):31–88, 2000.
[7] B.-Y. Z. Y.S.Jayram and R. Krauthgamer. Approximating Edit Distance
Efficiently. Computer Science, 2004.10.
[8] K. A. T. MIURA and I. SHIOYA. Approximate String Matching Using
Markovian Distance. Algorithms and Programming, 2010.
[9] D. S. J. Zibert and N. Pavesic. An edit-distance model for the approximate
matching of timed strings. Pattern Analysis and Machine
Intelligence, 31(4):736–741, 2009.
46
‫منابع‬
[9] D. S. J. Zibert and N. Pavesic. An edit-distance model for the approximate
matching of timed strings. Pattern Analysis and Machine
Intelligence, 31(4):736–741, 2009.
[10] L. D. S. Wang and Z. Mei. Approximate Address Matching. International
Conference 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 approximate
string matching. ournal of Neural Parallel and Scientific Computation,
1993.1.
[13] S. Xiao and W. chun Feng. Inter-Block GPU communication via fast
barrier synchronization. 24th IEEE International Parallel Distributed
Processing Symposium, 2010.
[14] K. C. K. G. Margaritis. String Matching on a Multicore GPU using
CUDA. 13th Panhellenic Conference on Informatics, 2009.
47
Thank You
Very much….
48

Approximate String Matching