موضوعات مختلفی در دنیای واقعی وجود دارند که برنامه ریزی دو سطحی برای مدل سازی فرآیندهای تصمیم گیری در آن ها مناسب است، اما به دلیل فقدان الگوریتم های موثر برای حل مسائل برنامه ریزی دوسطحی کاربرد آنها در دنیای واقعی محدود است. برای حل مسائل برنامه ریزی دو سطحی الگوریتم های دقیق متنوعی گسترش داده شده است؛ اما همه این روش ها بسیار زمان بر هستند به خصوص زمانی که مسئله در ابعاد بزرگ باشد و نمی توان از رویکردهای معمول در حل این گونه مسائل استفاده نمود؛ این امر منجر به استفاده از روش های فراابتکاری در حل مسائل برنامه ریزی دو سطحی شده است. الگوریتم رقابت استعماری الگوریتم فراابتکاری جدیدی است که در حل مسائل گوناگون بهینه سازی عملکرد خوبی داشته است. در این پایان نامه با استفاده از این الگوریتم و نوعی روش شمارش، الگوریتمی برای حل مسائل کوچک و متوسط برنامه ریزی دوسطحی خطی ارائه می شود. این الگوریتم با استفاده از عملگرهای موجود در الگوریتم رقابت استعماری و استفاده از مفاهیم موجود در روش سیمپلکس به حل مسائل مختلف می پردازد. پس از مدل سازی و ارائه الگوریتم پیشنهادی،کارایی الگوریتم رقابت استعماری در مسائل کوچک با حل مسائل موجود در مقالات و در مسائل متوسط با مقایسه نتایج حاصل از اجرای الگوریتم پیشنهادی و الگوریتم ژنتیک بررسی می شود . نتایج نشان می دهد الگوریتم رقابت استعماری در حل مسائل کوچک عملکرد خوبی داشته است و در حل مسائل متوسط در مقایسه با الگوریتم ژنتیک در تعداد کمتری از مسائل به جواب بهینه می رسد اما زمان حل مسائل را به طور متوسط تا 45/2 برابر، نسبت به زمان حل در الگوریتم ژنتیک کاهش می دهد. کلمات کلیدی : برنامه hy;ریزی دوسطحی خطی، الگوریتم رقابت استعماری، روش سیمپلکس،الگوریتم ژنتیک.