نام پژوهشگر: فاطمه بحری

بررسی الگوریتم های موجود برای مسئله کوتاه ترین ابرتوالی مشترک و ارائه الگوریتمی بهبود یافته برای آن
پایان نامه وزارت علوم، تحقیقات و فناوری - دانشگاه صنعتی اصفهان 1389
  فاطمه بحری   سید رسول موسوی

مسئله کوتاه ترین ابرتوالی مشترک (scs) از مسائل مهم بهینه سازی ترکیبیاتی است. مجموعه ای از رشته ها به عنوان ورودی به مسئله scs داده می شود و این مسئله به دنبال رشته ای می گردد که ابرتوالی تمام رشته ها بوده و دارای کوتاه ترین طول ممکن باشد. ابرتوالی یک رشته، از درج صفر یا تعداد بیشتری نماد در هر مکان از رشته مورد نظر به دست می آید. این مسئله در زمینه های مختلفی از جمله فشرده سازی داده، بهینه سازی پرسش در پایگاه داده ها، طرح ریزی و زیست اطلاعات کاربرد دارد. یکی از کاربرد های مهم این مسئله در زیست اطلاعات، کاهش زمان، هزینه و خطا در ساخت یکی از انواع ریزآرایه های dna می باشد. ریزآرایه های dna ابزارهای مفیدی هستند که در دسته بندی ژن ها، تشخیص ژن ها، تصویر سازی بیان ژنی و آشکارسازی snp، کاربرد دارند. تا به حال الگوریتم های دقیق برنامه نویسی پویا و شاخه و حد برای حل مسئله scs ارائه شده اند، اما این مسئله هنگامی که تعداد رشته ها بیشتر از 2 باشد یک مسئله np-hard می باشد، بنابراین تاکنون راه حل بهینه ای که در زمان چند جمله ای قابل اجرا باشد برای آن ارائه نشده است و در عمل الگوریتم های دقیق برای نمونه های بزرگ این مسئله قابل اجرا نیستند. به همین دلیل، اکثر الگوریتم های موجود برای حل این مسئله غیر دقیق می باشند، بدین معنی که این الگوریتم ها از شرط بهینگی پاسخ چشم پوشی کرده و سعی می کنند که جوابی نزدیک به بهینه در زمانی معقول به دست آورند. تا به حال الگوریتم های غیردقیق مختلفی از انواع الگوریتم های تقریبی، مکاشفه ای ساده و فرا مکاشفه ای برای مسئله scs ارائه شده اند. الگوریتم های تقریبی الگوریتم هایی هستند که جواب حاصل از آنها نسبت به جواب بهینه از حدی که با نسبت تقریب مشخص می شود، بدتر نمی باشد. الگوریتم های مکاشفه ای نیز، به الگوریتم هایی گفته می شود که بر مبنای یک مکاشفه عمل می کنند. این الگوریتم ها به دو دسته مکاشفه ای ساده و فرامکاشفه ای تقسیم می شوند. برای حل مسئله کوتاه ترین ابرتوالی مشترک تا به حال از الگوریتم های مکاشفه ای ساده و فرامکاشفه ای مختلفی استفاده شده است. تعدادی از این الگوریتم های مکاشفه ای به طور خاص برای رشته های dna طراحی شده اند. در این پایان نامه یک الگوریتم دقیق a* ارائه شده و برای آن توابع مکاشفه ای مختلفی بررسی شده است و در نهایت یک تابع مکاشفه ای ترکیبی ارائه شده که با تخمین حدی دقیق تر، از سایر توابع مکاشفه ای بهتر عمل می کند. در این الگوریتم برای کاهش فضای جستجو و در نتیجه کاهش زمان اجرا از راهبرد شاخه و حد و همچنین ایده هرس غالبانه استفاده شده است. با مقایسه این الگوریتم با دیگر الگوریتم های دقیق موجود، مشخص شد که الگوریتم ارائه شده منجر به کاهش قابل ملاحظه ای در فضای جستجو شده و دارای زمان اجرای بهتری می باشد. همچنین یک الگوریتم مکاشفه ای به همراه یک رویه پس پردازش در این پایان نامه ارائه شده است. این الگوریتم مکاشفه ای یک الگوریتم جستجوی پرتوی محلی است که مکاشفه ای مبتنی بر روابط بازگشتی را به کار گرفته و با استفاده از برنامه نویسی پویا یک آرایه از مقادیر احتمالاتی به صورت برنامه نویسی پویا تولید می کند که برای محاسبه سریع تر مقادیر مکاشفه ای مورد استفاده قرار می گیرد. همچنین این الگوریتم با استفاده از ایده هرس غالبانه فضای جستجو را هرس می کند. این الگوریتم با سه الگوریتم برتر اخیر بر روی رشته های تصادفی و واقعی مقایسه شده و نتایجی بهتر هم از نظر زمان اجرا و هم طول جواب به دست آورده است. رویه پس پردازش ارائه شده را نیز می توان بر روی هر پاسخ غیر بهینه از یک نمونه مسئله scs، اجرا کرد. این رویه با کاهش طول جواب موجود در حلقه ای تکرار شونده، جواب کوتاه تری که همچنان ابرتوالی مشترک رشته های ورودی می باشد، ارائه می کند. نتایج به دست آمده مشخص می کند که این رویه پس پردازش نسبت به رویه پس پردازش موجود، در زمان اجرای یکسان، دارای کیفیت جواب بهتری می باشد.