اشکالزدايي يک مرحله مهم از چرخه توليد نرم افزار است و برنامه نويسان کسر زيادي از وقتشان را صرف اين مرحله مي کنند. هدف، ارايه راه کاري براي تعيين خودکار محدوده خطا هاي پنهان در متن برنامه ها مي-باشد. ميتوان محدوده علت خطا را براساس مقايسه و تحليل مسيرهاي اجرايي صحيح و غلط بدست آورد. براساس شباهت مسيرهاي اجرايي مي توان آنها را دسته بندي نمود. جهت بدست آوردن شباهت مسيرها، مدل هاي n-گرام اجراها را بدست آورده و سپس با استفاده از آنتروپي متقاطع شباهت بين اين مدل ها را محاسبه ميکنيم. براي بدست آوردن مدلهاي n-گرام که در دسته مدل هاي مارکوف قرار ميگيرند احتمالات MLE توسط شمارش کلمات يا به عبارتي n-گرام ها محاسبه ميشوند. سپس با تحليل هر دسته، به کمک آنتروپي متقاطع، يک سري مکان هاي مشکوک به خطا شناسايي ميشوند و در نهايت با استفاده از روش پيشنهادي براي رأي اکثريت بين دسته ها، مکان هاي مشکوک به خطا به صورت بخش هايي از يک زير مسير به برنامه نويس معرفي مي شود. راه کار ارائه شده در اين پايان نامه، با دقت بالا مکان خطا را نشان مي دهد و نتايج بدست آمده از اِعمال اين راه کار به مجموعه محک زيمنس، گوياي آن مي باشد.
13. -n
-N
p ( wn | w1n 1 )
bigram, N
n
p ( wn | wn
2
1
N 1
)
n 1
1
p( wn | w
)
p( wn | wn 1 )
14. -n
n
p(wn | wn
1
N 1
)
n
C (wn 1 1wn )
N
n
C (wn 1 1 )
N
p( w1n )n ) p( w1 |# ) pp( w2| |w11 ) p(( w3| |w122)) .... p(( wn | |w1nn 11))
p( w1
p( w1 ) ( w2 w) p w3 w .... p wn w
n n
p( wk |k wk 1k)1 )
p( w | w
k 1 1
k
18. q p
H ( p, q )
E p ( log q )
DKL ( p || q )
H ( p)
H ( p)
p ( x ) log q ( x )
x
H ( p, q )
p ( x ) log q ( x )
x
DKL ( p || q )
19. H ( p, q)
H ( p) , if p
H ( p, q)
H ( p, q)
H ( p, q)
H (q, p)
q
20. -n
-n
p(win ) log p(wn | win 1 )
H(X )
w*
-n
p X (win ) log pY (wn | win 1 )
H ( X ,Y )
w*
21. P
P P
P P
P P
………
T
C
Pi
RC
P P
P P
P P
………
P P
S
22. Y X
X=p1 p2 p3
Y=p1 p2 p4
p X ( win ) log pY ( wn | win 1 )
H ( X ,Y )
w*
p X ( win ) log pY ( wn | win 1 )
p X1,(pP1P122, p3)3, p1 ppp 3}( P1) p X ( P2 | P1) p X ( P3 | P1P 2)
{ p 2 , p 3, p p P 2 p
2X
p X ( P1) log pY ( P1 |# )
p X ( P 2) log pY ( P 2 |# )
p X ( P3) log pY ( P3 |# )
p X ( P1P 2) log CY PPP 2) 1)1 p X ( P 2 P3) log pY(( P3 | P 2)
p( ( 1 2 | P
C P 2) 1
pY ( P 2 | P1)
1 , p X ( P 2)
C pY ( P 1
C ( wii 1 ) 3
p X ( P1P 2 P3) log ( P1) 3 | P1P 2)
23. log0
Y = P1 P2 P4
log 0 0
p X ( P 2 P3) pY ( P3 | P 2)
1
log 0 log(
)
1 C (ngram)
C ( P 2 P3)
pY ( P3 | P 2)
C ( P 2)
0
1
0
1
3
25. P1 P2 P3 P4 =
Unigram {P1,P2,P3,P4},
Bigram {P1P2,P2P3,P3P4},
Trigram {P1P2P3,P2P3P4}
D f ( s)
CrossEntro py( s, ti ) , ti is a fail test
i C
D p (s)
CrossEntro py( s, ti ) , ti is a pass test
i C
Similarity
1
Difference
طبق تعریف اشکال زدایی یک فرآیند سیستماتیک در یافتن و کم کردن تعداد خطاهاdebuggingتمام خطا ها از یک اصل ریشه گیرفته اند: چیزی که درست بنظر برسد، ولی در اصل غلط باشد.====================بارز ترین واکنش به چنین وضعیتی آن است که بطور تصادفی در کد تغییراتی انجام دهند، به امید آنکه برنامه مجددا شروع به کار کند. چراکه برنامه نویسان هیچ ایده ای در مورد اینکه چگونه به اشکال زدایی بپردازند، ندارند.تشخیص خودکار خطاهای نرم افزار می تواند بهره وری مرحله اشکال زدایی را بهبود ببخشد، و لذا راه کاری مهم برای توسعه نرم افزارهای قابل اعتماد است.
مهمترين نقاطِ برنامه که جهت تشخيص عملکرد برنامه، به عنوان تعيين کننده انتخاب ميشوندمقادير حاصل از ارزيابي تعيين کننده ها، درست يا نادرست هستند.
اطلاعات حاصل از مستندگذاري، ذخیره شده و سپس براي تحلیل رفتار برنامه مورد استفاده قرار میگیرند
تعیین خواهد کرد که آی ا برنامه براساس ورودي هاي مربوطه به درستی عمل می کند یا خیر
ايده پيش بيني کلمه توسط مدل هاي احتمالي بطور رسمي n-گرام ناميده ميشود، که کلمه بعدي را توسط n-1کلمه قبلي پيش بيني ميکند. من دوست دارم خارج از کشور . . . {زندگی کنم، درس بخوانم، کارکنم}محاسبه احتمال کلمه بعدي ≈ محاسبه احتمال يک دنباله از کلمات
احتمالات بر مبناي شمارش اشياء هستندتخمين احتمالات بطور مستقيم از روي شمارش در بسياري از حالات بخوبي کار ميکند
از آنجاييکه زبان بسيار پوياست و هر لحظه کلمات جديدي به آن اضافه ميشود، ممکن است هيچ گاه کلمه مورد نظر در جايي ديده نشده باشدمبناي مدل n-گرام اين است که به جاي محاسبه احتمال يک کلمه که پيشينه آن داده شده است، پيشينه با استفاده از چند کلمه آخرش تقريب زده شود.مدلهاي مارکوف گونه اي از مدلهاي احتمالي هستند، با اين فرض که ميتوان احتمال برخي از پديدهها را بدون دانستن تاريخچه خيلي دور آنها، تنها با دانستن حالت قبلي، پيش بيني نمود.
مدلهاي مارکوف گونه اي از مدلهاي احتمالي هستند، با اين فرض که ميتوان احتمال برخي از پديدهها را بدون دانستن تاريخچه خيلي دور آنها، تنها با دانستن حالت قبلي، پيش بيني نمود.
محاسبه احتمال کلمه بعدي ميتواند بسيار مرتبط با محاسبه احتمال يک دنباله از کلمات باشد.
در تعريفي ديگر آنتروپي حداقل بيت هاي لازم را براي کدگذاري کردن مقادير متغير تصادفي X با تابع احتمال pمشخص ميکند. اين کد گذاري به طور طبيعي بر حسب بيت ميباشد و بنابراين مبناي لگاريتم 2 است. اما هر مبناي ديگري ميتواند مورد استفاده قرار گيرد. ضمنا از مفروضات لگاريتم مورد استفاده در آنتروپي اين است که log 0 = 0 ميباشد.در راه کار پيشنهادي مقداري نزديک به صفر استميتوان آنتروپي را در قالب يک بازي بيست سوالي هم در نظر گرفت. شما براي اينکه پاسخ دهيد که يک حرف خاص (به عنوان مثال i) درون اين الفبا چيست به طور ميانگين با 2.5 سوال به پاسخ خواهيد رسيد. آيا حرف p و يا a است؟ (خير) ، آيا حرف صدا دار است؟ ...با اين فرض که سوالات مرتبط پرسيده شودبا کمک آنتروپي ميتوان مدل هايي که براي تشريح رفتار زبان ساخته شده اند را بهتر کرد ولي مواردي وجود دارد که ميخواهيم چندين توزيع را با هم مقايسه شوند تا مشخص شود کدام يک به هم نزديک ترند و شباهت رفتاري بيشتري دارند. در اينجا ميتوان از آنتروپي متقاطع استفاده کرد که اجازه ميدهد دو تابع احتمال با هم مقايسه شوند. زبان (که به طور خاص با مدل هاي n-گرام نشان داده ميشوند)
که در آن H(p) آنتروپي p، و DkL(p||q) فاصله kullback-leibler توزيع q از p است که به عنوان آنتروپي نسبي هم شناخته ميشود.
که در آن H(p) آنتروپي p، و DkL(p||q) فاصله kullback-leibler توزيع q از p است که به عنوان آنتروپي نسبي هم شناخته ميشود.
بنابر این اگر تعیین کننده ای در اجرای هدف وجود داشته باشد که در اجرای ثانی موجود نباشد باعث میشود تمام n-گرام هایی که آن تعیین کننده در آنها شرکت داشته، در محاسباتش مقدار صفر را نتیجه دهد. باید توجه شود از آنجاییکه آنتروپی مقدار تفاوت را حساب میکند، صفر به معنی شباهت است، در صورتی که رشته ها متفاوت هستند. در ضمن نمیتوان از مقدار پیش فرض لگاریتم استفاده کرد، زیرا مقدار بی نهایت باعث تخریب دیگر مقادیر به دست آمده در مجموع میشود. بنابراین در این راه کار زمانی که احتمالی برابر صفر شود، به جای مقدار صفر کمترین احتمال ممکن به منظور نزدیک بودن به صفر، در نظرگرفته میشود
با تحليل خوشهها، جوابهايي که هر خوشه به عنوان مسيرهاي مشکوک به خطا اعلام ميکنند، ممکن است داراي اولويت هاي متفاوتي باشند و حتي در برخي موارد کاملاً متفاوت باشند. بنابراين با استفاده از رأي اکثريت بين خوشهها، زير مسيرهاي مشکوک به خطا به ترتيب اولويت معرفي خواهند شد. . بر حسب ترتيب ظاهر شدن هر زير مسير در هر خوشه مقداري بين 0 و 1 به آن زير مسير در آن خوشه نسبت داده ميشود که نزديک بودن به 1 به معناي اولويت بالاتر است. این مقدار به این خاطر است که بین اعداد به دست آمده در خوشه های مختلف یکپارچگی به وجود آید، زیرا صرفا ترتیب ظاهر شدن زیرمسیرها به دلیل متغیر بودن طول اجراهای هدف، دقت را پایین میآورد.
با تحليل خوشهها، جوابهايي که هر خوشه به عنوان مسيرهاي مشکوک به خطا اعلام ميکنند، ممکن است داراي اولويت هاي متفاوتي باشند و حتي در برخي موارد کاملاً متفاوت باشند. بنابراين با استفاده از رأي اکثريت بين خوشهها، زير مسيرهاي مشکوک به خطا به ترتيب اولويت معرفي خواهند شد. . بر حسب ترتيب ظاهر شدن هر زير مسير در هر خوشه مقداري بين 0 و 1 به آن زير مسير در آن خوشه نسبت داده ميشود که نزديک بودن به 1 به معناي اولويت بالاتر است. این مقدار به این خاطر است که بین اعداد به دست آمده در خوشه های مختلف یکپارچگی به وجود آید، زیرا صرفا ترتیب ظاهر شدن زیرمسیرها به دلیل متغیر بودن طول اجراهای هدف، دقت را پایین میآورد.
با تحليل خوشهها، جوابهايي که هر خوشه به عنوان مسيرهاي مشکوک به خطا اعلام ميکنند، ممکن است داراي اولويت هاي متفاوتي باشند و حتي در برخي موارد کاملاً متفاوت باشند. بنابراين با استفاده از رأي اکثريت بين خوشهها، زير مسيرهاي مشکوک به خطا به ترتيب اولويت معرفي خواهند شد. . بر حسب ترتيب ظاهر شدن هر زير مسير در هر خوشه مقداري بين 0 و 1 به آن زير مسير در آن خوشه نسبت داده ميشود که نزديک بودن به 1 به معناي اولويت بالاتر است. این مقدار به این خاطر است که بین اعداد به دست آمده در خوشه های مختلف یکپارچگی به وجود آید، زیرا صرفا ترتیب ظاهر شدن زیرمسیرها به دلیل متغیر بودن طول اجراهای هدف، دقت را پایین میآورد.