مفهوم برنامه نویسی در سطح بسته (پاکت)- که معمولا برنامه نویسی شبکه ای نامیده می شود- تمایل زیادی را از زمان انتشار [1] به خود جلب نموده است،که استفاده ی آن را برای چند قالب ها در شبکه های پاکت بی سیم نشان داده است.اکنون تایید شده است ،ممکن است برنامه نویسی شبکه ای به شدت عملکرد اجرایی شبکه را بر حسب توان عملیاتی (کار) شبکه ارتقا بخشد.لازم به ذکر است،بهینه سازی مرسوم شبکه ای در صدد به حداکثر رساندن جریان اطلاعات است که از طریق استفاده از ظرفیت زیاد لینک تا حد ممکن میسر می شود، در حالیکه برنامه نویسی شبکه ای با این فرضیه آغاز می شود که استفاده از ظرفیت کامل لینک تا کنون هر بار که ممکن بوده، بدست آمده است و از اینرو تلاش می شود توان عملیاتی شبکه در حفره ها با اجرای برنامه ها در ندها افزایش یابد.این مزیت برنامه نویسی شبکه ای می تواند در بافت نمونه ی نشان داده شده در شکل 1 الف و ب شناخته شود.در شکل 1 فرض می شود که دو بخش متفاوت از یک پاکت/ داده ی در اندازه ی واحد α و β، از ند منبع یک به ند حفره 6و 7 ارسال شده اند و ظرفیت هر لینکی فقط 1 است (در این مقاله ظرفیت لینک همانند بهینه سازی شبکه ای مرسوم تعریف می شود [1] و همه ی دیتاها در یک اندازه ی واحد هستند و همه ی لینک ها در ظرفیت واحد می باشند).هدف به حداکثر رساندن سرعت بدست آمده در هر حفره است یعنی میزان داده های مختلف دریافت شده از طریق یک حفره (sink) در یک بار.سرعت همچنین در واحدهای دیتا اندازه گیری می شود.از آنجایی که همه ی لینک ها در ظرفیت واحد هستند،ماکسیمم سرعت قابل دستیابی احتمالی در یک حفره با تعداد لینک های وارد شونده برابر است.با این وجود،لینک های مختلف ممکن است همان دیتا را حمل نمایند،همانند دو لینک وارد شونده ی ند 7 در شکل 1 الف و ازاینرو سرعتی که واقعا در هر حفره بدست آمده است، ممکن است از سرعت احتمالی کمتر باشد.این احتمالا موردی است که اگر ندها در شبکه فقط فروارد شوند و دیتایی که دریافت می کنند برگردانده شود.برای نمونه همانطور که در شکل 1 الف نشان داده شده است،ند حفره ی 7 می تواند فقط یک واحد دیتا β را در یک مرتبه دریافت نماید،گرچه ند 6 دیگر از طریق دریافت α و β به سرعت 2 می رسد .جریان اطلاعات در شکل 1 الف از نقطه نظر عادی ،مطلوب است زیرا هر لینکی یک واحد دیتا را حمل می کند،که یک استفاده ی کامل از ظرفیت لینک را ارائه می نماید.با این وجود، اگر ند 4 بتواند داده های دو لینک وارد شونده را از طریق عملیات “+” ترکیب نماید،آنگاه با استفاده از عملیات “-” دیتا دی کد (رمزگشایی) می شود،در یک سرعت 2 می تواند در هر دو حفره بدست آید،همانطور که در شکل 1 ب نشان داده شده است.لازم به ذکر است که نتیجه ی عملیات “+” مانند β+α در شکل 1 ب ،هم چنان یک عنصر دیتا در اندازه ی واحد است. از اینرو بدون فراتر رفتن از ظرفیت لینک
برنامه نویسی شبکه ،سرعت کل جریان اطلاعات را از طریق همان شبکه از 3 به 4 در شکل 1 افزایش می دهد که یک پیشرفت قابل توجه است.
گرچه کدینگ شبکه ممکن است در همه ی ندها در برخی از متون مربوطه مجاز تلقی شود،اما یک مشاهده ی جالب این است که یک سرعت هدف داده شده اغلب می تواند با اجرای کدینگ شبکه در فقط یک نسبت تقریبا کوچک از ندها بدست آید [2]. برای نمونه، در شبکه داده شده در شکل 1 ث ،کدینگ شبکه در هر دو ند 4 و 5 هیچ تفاوتی را بر حسب سرعت بدست امده در حفره ها ایجاد نخواهد کرد یا به بیان دیگر، کدینگ شبکه در آن شبکه لازم نیست.بنابراین یک سوال بوجود می آید:کدینگ شبکه در چه ندهایی نیاز به اجرا دارد یا چطور می توان بیشترین ظرفیت شبکه را در یک هزینه ی حداقل بر حسب منابع کدینگ شبکه ایجاد نمود؟ برای پاسخ به این سوال،یک مجموعه ی حداقل از ندها لازم است برای کدینگ یافت شود و این ثابت شده است که باید یک مسئله ی سخت NP باشد [3].در این مقاله، مسئله ی فوق یعنی به حداقل رساندن منابع کدگذاری شبکه به عنوان مسئله ی کدینگ شبکه (NCP) مطرح می شود.برخی از تلاش ها تا کنون با استفاده از متدهای مختلف صورت گرفته است تا این مسئله را بررسی نماید.برای نمونه دو دستاورد کمینه (حداقلی) در [5،4] گزارش شده است که مجموعه ی کمینه ی ندها را برای کدینگ شبکه اثبات نموده است تا یک سرعت هدف داده شده را بدست آورد.در [4] مشخص شده است که کدینگ در بیشتر از d-1 ند در شبکه های ناچرخه ای با دو منبع سرعت واحد و حفره های d لازم نیست.یک ح (کران) بالا بر روی تعدادی از ندها برای هم شبکه های ناچرخه ای و هم چرخه ای که از [5] بدست آمده بود،لازم بود.با این وجود،دستاورد های موجود در [5،4] مجموعه ی کمینه ی ندها را برای کد گذاری از طریق از بین بردن لینک ها در یک حالت اشباع نشدنی را مشخص می کند.
همانند تحقیق اتفاقی موازی در مقایس بزرگ و الگوریتم های بهینه سازی ، الگوریتم های ژنتیک (GAs) دارای منشا خوبی در حل مسائل سخت NP گوناگون هستند [8،7]،من جمله بهینه سازی کدینگ شبکه ای و تخصیص منابع [10،9].با این حال،بهینه سازی کدینگ شبکه ،نسبتا حوزه ی جدیدی برای GAs است و نتایج خیلی کمی در [2,11–13] گزارش شده است.نخستین تلاش برای به کارگیری GAs در کدینگ شبکه توسط کیم و همکارانش صورت گرفت [2].این آنگاه از شبکه های ناچرخه ای به شبکه های چرخه ای توسعه یافت و از موارد متمرکز به موارد نامتمرکز سوق یافت [11].نمایش ژنتیکی تاکید خاصی در کار بعدی داشت [12]،که از طریق پروپوزال یک الگوریتم توزیع شده برای بهبود اثر بخشی محاسباتی GA دنبال شد [13].
یک فرضیه ی مشترک در کار بهینه سازی کدینگ شبکه وجود دارد بنابراین سرعت هدف همیشه قابل دستیابی است اگر کدینگ در همه ی ندها مجاز باشد، و اجازه دهد توجه بر روی به حداقل رسانی تعداد لینک ها و ندهای کدینگ معطوف باشد.علی رغم این، د محیط های پویا (دینامیکی) همانند شبکه های بی سیم،کاملا این امکان وجود دارد که سرعت هدف ممکن است با توجه به عدم قطعیت در اتصالات بین ندها غیر قابل دستیابی باشد [14].اگر این اتفاق بیفتد، در واقع این سرعت است که به دست می آید نه سرعت هدف،که نقش مهم تری را در کدینگ شبکه ایفا می کند.مطالعات قبلی با استفاده از این فرضیه است که سرعت هدف قابل دستیابی است همانند [13-4،2] ،و این مسئله را در نظر نمیگیرد که سرعت واقعا در زمانی که منابع به حداقل می رسد بدست می آید و از اینرو به شدت به NCP (SNCP) محدود می شود.آنها ممکن است فقط برای NCP (DNCP) به کار رود که از طریق محاسبه ی مجدد سرعت هدف است و از اینرو منابع هر بار که تغییری در توپولوژی شبکه روی می دهد بهینه سازی می شوند.
کدینگ شبکه در محیط های دینامیکی یک موضوع تحقیقاتی چالش برانگیز است.کدگذاری تصادفی شبکه ثابت شده است در بررسی تغییرات توپولوژی شبکه بسیار برجسته است زیرا به دانش توپولوژی کامل شبکه نیازی ندارد [19-15].با این وجود، در این مطالعات کدگذاری تصادفی شبکه ای، به حداقل رساندن منابع کدگذاری دغدغه ی ما محسوب نمی شود وهر ندی باید با بارهای (سنگینی) کدینگ خود در کل شبکه در ارتباط باشد یعنی کل ظرفیت شبکه برای انتقال سیگنال های ارسال شده از طریق منبع لازم نیست در دسترس باشند.بنابراین در حالیکه مزایای کدگذاری تصادفی شبکه باید تایید شود،اما باز هم لازم است شیوه ی بهبود کدگذاری شبکه ای بر اساس کل توپولوژی شبکه مورد تحقیق و بررسی قرار گیرد.قدرت در برابر تغییرات در توپولوژی شبکه یک مسئله ی خاص خواهد بود. همانطور که در بخش 3 توضیح داده خواهد شد، مدل DNCP که در این مقاله ارائه شده است چنین قدرتی را تا حدی نشان می دهد در زمانی که با کار قبلی مقایسه می شود [11،2].
در مطالعه ی قبلی مان [20]،نتایج مقدماتی مربوط به طراحی GAs موثر برای به حداقل رساندن منابع کدینگ در NCP ،به ویژه درDNCP ،گزارش شده بودند اما کار به NCP محدود می شد که فقط از ساده ترین کدینگ افزودن (یعنی اندازه میدان 2 است) بین دو سیگنال وارد شونده استفاده می کرد.کار ارائه شده در این مقاله به پیشرفت های بیشتر نتایج قبلی ما از طریق گسترش کارمان به NCP مربوط میشود که در آنجا کدینگ با هر اندازه ی میدان معینی برای ترکیب هر تعداد مشخص از سیگنال وارد شونده تطبیق داده می شود.