فرض کنید که ما پستچی هستیم و به ما ۵۰ نامه داده شده است و قرار است در یک نصف روز، همهی این نامهها را به دست صاحبانشان برسانیم. همهی این نامهها نیز فقط مربوط به یک منطقه است و البته ما یک خودروی پست نیز در اختیار داریم. اگر نامهها را زودتر به دست صاحبانشان برسانیم، زودتر هم به خانه میرویم و نهار را در منزل خودمان صرف میکنیم. قضیه مربوط به چند سال قبل است و هنوز خبری از این برنامههای کامپیوتری نیست و خودمان بر حسب تجربه، انتخاب میکنیم که کدام نامه را زودتر ببریم و کدام را دیرتر.
مثلا نامهها مربوط به خیابان یوسف آباد است و ما نامهها را براساس خیابان تقسیم بندی میکنیم. نامههای خیابان اول یوسف آباد را بالا میگذاریم و به همین ترتیب نامههای خیابانهای بعدی را زیر آن میگذاریم. حالا ما یک راه حل برای این مساله پیدا کرده ایم و از اول یوسف آباد شروع میکنیم تا انتها میرویم تا نامهها تمام شود. اما مساله به این سادگیها نیست. چرا که اکثر خیابانهای منطقهی یوسف آباد یک طرفه است و حالا بعد از ظهر شده و ما به خاطر راه حل اشتباهی که در ذهن داشتیم، هنوز نامه ها را تمام نکرده ایم. چرا که بعضی از این خیابانها یک طرفه بوده و بایستی از خیابان بالایی میرفتیم و بعد وارد خیابان پایینی میشدیم که یک طرفه بود.
حالا این وسط بنزینمان هم دارد تمام میشود و باید برویم پمپ بنزین بالاتر از عباس آباد بنزین بزنیم. از طرف دیگر زمان را از دست داده ایم و کم کم داریم به تاریکی میخوریم و شاید ناچار شویم بقیهی نامهها را فردا برسانیم و از آنجایی که اکثر این نامهها مربوط به شرکتهاست، فردا بایستی کلی غر زدن آنها را هم تحمل کنیم. به همهی اینها، ناراحتی رئیس را هم اضافه کنید.
حالا فرض کنید که به جای یک پستچی، شما صاحب یک شرکت حمل و نقل بین المللی هستید و میخواهید با کمترین هزینه، در کمترین زمان، بار مشتریان را به مقصد برسانید. این مساله، علیرغم اینکه شاید ساده به نظر برسد، یکی از مهمترین مسائل علوم کامپیوتر و همچنین تحقیق در عملیات (Operations Research) است که به آن مسالهی فروشندهی دوره گرد (Travelling Salesman Problem یا به اصطلاح TSP) گفته میشود. مساله به این صورت است که یک فروشنده میخواهد از یک شهر کارش را شروع کند، از چند شهر عبور کند و در یک شهر کارش را به پایان برساند. بایستی الگوریتمی ارائه دهیم که فروشنده کوتاهترین مسیر را طی کند. تعداد راهحلهای این مساله بسیار زیاد است. اما مساله انتخاب بهترین آنهاست و این چیزیست که ریاضیدانان و دانشمندان علوم کامپیوتر، دهههاست به دنبال یافتن راه حلی مناسب برای آن هستند. هزینهی محاسباتی این مساله برخلاف ظاهر بسیار ساده اش، بسیار بالاست.
مثلا اگر ده شهر داشته باشیم، فروشنده بیش از ۳۰۰ هزار مسیر مختلف میتواند طی کند. اگر ۱۵ شهر داشته باشیم، تعداد مسیرهایی که فروشنده میتواند طی کند، از ۸۷ میلیارد مسیر نیز فراتر میرود. پس این مساله، مسالهی چندان راحتی نیست. اما راه حل آن بسیار بسیار پرکاربرد خواهد بود.
– اَبا اِباد