SlideShare a Scribd company logo
1 of 48
‫الرحیم‬ ‫الرحمن‬ ‫اهلل‬ ‫بسم‬
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

More Related Content

Similar to Approximate String Matching

نمونه پروژه سایت پروژه تیوب
نمونه پروژه سایت پروژه تیوبنمونه پروژه سایت پروژه تیوب
نمونه پروژه سایت پروژه تیوبAlireza Alahdadi
 
Fuzzy project management
Fuzzy project managementFuzzy project management
Fuzzy project managementHamideh Iraj
 
الدالات الأساسية-في-برنامج-الإكسل
الدالات الأساسية-في-برنامج-الإكسلالدالات الأساسية-في-برنامج-الإكسل
الدالات الأساسية-في-برنامج-الإكسلMahmoud Abd Elrahman
 
مروری برتکنیکهای با اشکال و بدون اشکال نگاشت در شبکه روی تراشه- سیده مریم سلی...
مروری برتکنیکهای با اشکال و بدون اشکال نگاشت در شبکه روی تراشه- سیده مریم سلی...مروری برتکنیکهای با اشکال و بدون اشکال نگاشت در شبکه روی تراشه- سیده مریم سلی...
مروری برتکنیکهای با اشکال و بدون اشکال نگاشت در شبکه روی تراشه- سیده مریم سلی...tarasad
 
روش های انتگرال گیری عددی
روش های انتگرال گیری عددیروش های انتگرال گیری عددی
روش های انتگرال گیری عددیminidars
 
Final presentation for Master Degree Thesis
Final presentation for Master Degree ThesisFinal presentation for Master Degree Thesis
Final presentation for Master Degree ThesisShahram Foroozan
 
Final report
Final reportFinal report
Final reportnasim1993
 
Jozve c#2 mohamady_zahedy
Jozve c#2 mohamady_zahedyJozve c#2 mohamady_zahedy
Jozve c#2 mohamady_zahedydanesh_fd
 
Multi-Prefix Trie: a New Data Structure for
Multi-Prefix Trie: a New Data Structure forMulti-Prefix Trie: a New Data Structure for
Multi-Prefix Trie: a New Data Structure formehdi sa
 
teleoperationنگار پژوه :: تله اپراتور برای آموزش جراحی رباتیک
teleoperationنگار پژوه :: تله اپراتور  برای آموزش جراحی رباتیکteleoperationنگار پژوه :: تله اپراتور  برای آموزش جراحی رباتیک
teleoperationنگار پژوه :: تله اپراتور برای آموزش جراحی رباتیکMojtaba Hasanlu
 
Pca تجزیه و تحلیل مولفه های اساسی
Pca تجزیه و تحلیل مولفه های اساسیPca تجزیه و تحلیل مولفه های اساسی
Pca تجزیه و تحلیل مولفه های اساسیAbolfazl Fatehi
 
شبکه‌های پتری
شبکه‌های پتریشبکه‌های پتری
شبکه‌های پتریMahdi Dolati
 
آموزش روش تقسیم و حل در طراحی الگوریتم (مرور – تست کنکور ارشد)
آموزش روش تقسیم و حل در طراحی الگوریتم (مرور – تست کنکور ارشد)آموزش روش تقسیم و حل در طراحی الگوریتم (مرور – تست کنکور ارشد)
آموزش روش تقسیم و حل در طراحی الگوریتم (مرور – تست کنکور ارشد)faradars
 

Similar to Approximate String Matching (20)

Quantom
QuantomQuantom
Quantom
 
Vibration
VibrationVibration
Vibration
 
نمونه پروژه سایت پروژه تیوب
نمونه پروژه سایت پروژه تیوبنمونه پروژه سایت پروژه تیوب
نمونه پروژه سایت پروژه تیوب
 
Fuzzy project management
Fuzzy project managementFuzzy project management
Fuzzy project management
 
الدالات الأساسية-في-برنامج-الإكسل
الدالات الأساسية-في-برنامج-الإكسلالدالات الأساسية-في-برنامج-الإكسل
الدالات الأساسية-في-برنامج-الإكسل
 
مروری برتکنیکهای با اشکال و بدون اشکال نگاشت در شبکه روی تراشه- سیده مریم سلی...
مروری برتکنیکهای با اشکال و بدون اشکال نگاشت در شبکه روی تراشه- سیده مریم سلی...مروری برتکنیکهای با اشکال و بدون اشکال نگاشت در شبکه روی تراشه- سیده مریم سلی...
مروری برتکنیکهای با اشکال و بدون اشکال نگاشت در شبکه روی تراشه- سیده مریم سلی...
 
روش های انتگرال گیری عددی
روش های انتگرال گیری عددیروش های انتگرال گیری عددی
روش های انتگرال گیری عددی
 
Final presentation for Master Degree Thesis
Final presentation for Master Degree ThesisFinal presentation for Master Degree Thesis
Final presentation for Master Degree Thesis
 
Id3
Id3Id3
Id3
 
Identification and adaptive position and speed control of permanent magnet dc...
Identification and adaptive position and speed control of permanent magnet dc...Identification and adaptive position and speed control of permanent magnet dc...
Identification and adaptive position and speed control of permanent magnet dc...
 
Final report
Final reportFinal report
Final report
 
Jozve c#2 mohamady_zahedy
Jozve c#2 mohamady_zahedyJozve c#2 mohamady_zahedy
Jozve c#2 mohamady_zahedy
 
86203954
8620395486203954
86203954
 
math history
math history math history
math history
 
Multi-Prefix Trie: a New Data Structure for
Multi-Prefix Trie: a New Data Structure forMulti-Prefix Trie: a New Data Structure for
Multi-Prefix Trie: a New Data Structure for
 
teleoperationنگار پژوه :: تله اپراتور برای آموزش جراحی رباتیک
teleoperationنگار پژوه :: تله اپراتور  برای آموزش جراحی رباتیکteleoperationنگار پژوه :: تله اپراتور  برای آموزش جراحی رباتیک
teleoperationنگار پژوه :: تله اپراتور برای آموزش جراحی رباتیک
 
Pca تجزیه و تحلیل مولفه های اساسی
Pca تجزیه و تحلیل مولفه های اساسیPca تجزیه و تحلیل مولفه های اساسی
Pca تجزیه و تحلیل مولفه های اساسی
 
شبکه‌های پتری
شبکه‌های پتریشبکه‌های پتری
شبکه‌های پتری
 
Parallel Min Cut
Parallel Min CutParallel Min Cut
Parallel Min Cut
 
آموزش روش تقسیم و حل در طراحی الگوریتم (مرور – تست کنکور ارشد)
آموزش روش تقسیم و حل در طراحی الگوریتم (مرور – تست کنکور ارشد)آموزش روش تقسیم و حل در طراحی الگوریتم (مرور – تست کنکور ارشد)
آموزش روش تقسیم و حل در طراحی الگوریتم (مرور – تست کنکور ارشد)
 

Approximate String Matching