هر سیستم پیچیده‌ای که کار می‌کند همیشه از یک سیستم ساده که کار می‌کرده تکامل یافته. یک سیستم پیچیده که از ابتدا طراحی شده باشد هرگز کار نمی‌کند و نمی‌توان آن را اصلاح کرد تا کار کند. شما باید با یک سیستم ساده کار را دوباره شروع کنید
جان گال

مارپیچ الگویی است که «رشد» و «تکرار» را همزمان در خود دارد. مارپیچ شایع‌ترین مدل رشد در طبیعت است. در گیاهان، صدف‌ها، اثر انگشت، گردبادها، کهکشان‌ها و بسیاری دیگر از مخلوقات الگوی مارپیچ دیده می‌شود. بازهای شکاری در مسیری مارپیچ طعمهٔ خودشان را شکار می‌کنند. حشرات با الگویی مارپیچ به منابع نور نزدیک می‌شوند. در توجیه تکرار این الگو گفته‌اند و می‌گویند که رشد مارپیچی، کم‌ترین انرژی ممکن را می‌برد. پس برای عناصر طبیعی صرف می‌کند که حول مرکزیت خودشان توسعه پیدا کنند.

رشد مارپیچی از یک نقطه شروع می‌شود و همان نقطه مدام خودش را تکرار می‌کند. اما این تکرار به معنی درجازدن نیست. تفاوت مارپیچ با دایره در همین است. دایره مدام درجا می‌زند ولی مارپیچ فعال است و مدام خودش را بزرگ‌تر می‌کند. در الگوی مارپیچی نقشهٔ از پیش تعیین‌شده‌ای وجود ندارد. وضعیت فعلی، گام بعدی را تعیین می‌کند. به همین خاطر است که ساختارهای مارپیچی پایداری بسیار بالایی دارند.

نگاه مارپیچی دوای درد ایدئال‌گراهاست. کسی که می‌خواهد جامعه را درست کند، بهتر است اول از خودش و بعداً اطرافیانش شروع کند. کسی که می‌خواهد پروژه‌ای در مقیاس ملی و جهانی تعریف کند، بهتر از پروژه‌های محلی شروع کند. یکی از خلاقیت‌های دولت چین در تربیت رهبران آینده، فرستادن این افراد به روستاهای دورافتاده است. شرط ترفیع و جدی گرفته شدن برای این افراد، افزایش ۵۰٪ درآمد اهالی آن روستاست. اگر در این مرحله موفق بودند، همین کار را در مقیاس، شهر، استان و در نهایت کشور عهده‌دار خواهند شد.

The good life for man is the life spent in seeking for the good life for man.
Alasdair MacIntyre

رفتار مارپیچی در آثار هنرمندها هم دیده می‌شود. اکثر هنرمندها فقط یک اثر دارند و باقی آثار تکرار همان یک اثر است. کسی که کارهای آلفرد هیچکاک، اندرو دامنیک، چارلی کافمن، مارتین اسکورسیزی یا فدریکو فلینی را دیده باشد، با لحظه‌ای تأمل متوجه یکسان بودن آثار متوالی این افراد می‌شود. گابریل گارسیا مارکز در کتاب «بوی درخت گویاو» می‌گوید: «معتقدم غالباً هر نویسنده فقط یک کتاب می‌نویسد، حتی اگر این کتاب در مجلدهای مختلف و یا نام‌های متفاوت منتشر شود. این مسأله در مورد بالزاک، کنراد، ملویل، کافکا و فاکنر، به‌خصوص فاکنر، صدق می‌کند». البته که این الگو استثناهایی هم دارد. استثناها مختص هنرمندانی است که مدام در حرکت داخلی و خارجی هستند و جای پایشان را سفت نمی‌کنند. مثل استنلی کوبریک؛ مثل دیوید لینچ.

کاری که شکل مارپیچی به خودش می‌گیرد، مثل بچه زنده است؛ به مرور رشد می‌کند و تربیت می‌شود. در ابتدای کار یک موجود ضعیف و ناکارآمد است؛ اما مدام در حال کامل‌تر شدن است. متن هنر تا امروز ۳۷ بار اصلاح شده است و بعد از این باز هم اصلاح خواهد شد.

The path isn’t a straight line; it’s a spiral. You continually come back to things you thought you understood and see deeper truths.
‌Barry H. Gillespie

رفتار مارپیچی یعنی مدام تازه شروع کردن. شروع‌های جدید به ما اجازه می‌دهند که الگوهای تکرارشوندهٔ بد یا قدیمی را کنار بگذاریم و هر چه در دور قبل یاد گرفته‌ایم از نو به کار بگیریم. ورود به مدرسهٔ جدید یا دانشگاه، ازدواج، تغییر شغل، مهاجرت و امثال این‌ها، همه فرصت‌های تازه‌ای برای شروع هستند. البته برای کسی که اهلش باشد، هر روز فرصت تازه‌ای است؛ اما گاهی فشار محیط به قدری زیاد است که تنها با تغییر فضا شروع تازه میسر می‌شود.

رسیدن به جواب با مارپیچ

در خیلی از مسئله‌ها، برای رسیدن به کیفیت خوب، باید اول روی کمیت تمرکز کنیم. انگار که با چند بار امتحان کردن، راه‌های بهتری پیدا می‌کنیم. «الگوریتم‌های تکرارشونده» در ریاضی هم همین کار را می‌کنند. مثلاً در طبیعت، «تکامل» یک نمونه از این الگوریتم‌هاست؛ موجودات زنده با تغییرات تصادفی (جهش) مدام امتحان می‌کنند که آیا می‌توانند بهتر از قبل با محیط سازگار شوند یا نه. در فیزیک و شیمی هم فرآیندی به نام «آنیلینگ» (یا بازپخت)1 شبیه به همین است؛ ماده را آرام‌آرام سرد می‌کنند تا به پایدارترین و بهترین حالت خودش برسد. حتی در مذاکره، دو طرف بعد از یک توافق اولیه، آنقدر پیشنهادهای مختلف به هم می‌دهند تا به بهترین حالت ممکن برای هر دو برسند.

این جور مسئله‌ها مثل یک ظرف پر از چیزهای مختلف، مثلاً یک ظرف آجیل، هستند. هدف این است که این چیزها را تا جایی که می‌شود، فشرده کنیم. این آجیل‌ها می‌توانند به هزاران شکل مختلف در ظرف قرار بگیرند. راه‌حل تکراری و ساده‌اش این است که ظرف را آرام و پیوسته تکان بدهیم. چرا؟ چون بعد از هر تکان، آجیل‌ها فرصت پیدا می‌کنند کمی جابجا شوند و چون نیرویی مثل جاذبه آنها را به سمت پایین می‌کشد، معمولاً حالت بعدی‌شان کمی بهتر و فشرده‌تر از حالت قبلی می‌شود.

منطق مشترک همه این مثال‌ها این است: با یک جواب یا وضعیت اولیه شروع می‌کنیم و بعد، قدم به قدم تلاش می‌کنیم تا به حالتی بهتر از وضعیت فعلی برسیم. شاید همیشه نتوانیم به «بهترین جواب ممکن» در کل دنیا برسیم، اما حداقل به جوابی می‌رسیم که خیلی از جواب اولیه‌مان بهتر است.

در جبر خطی، مسائلی به اسم برنامه‌ریزی خطی2 را با الگوریتم‌های تکرارشونده حل می‌کنند. برای یک مثال واقعی ، مسألهٔ زیر را در نظر بگیرید:

یک کارگاه دو نوع محصول A و B تولید می‌کند.

  • برای تولید هر واحد از محصول A به ۱ ساعت کار ماشین‌کاری و ۲ ساعت کار مونتاژ نیاز است.
  • برای تولید هر واحد از محصول B به ۲ ساعت کار ماشین‌کاری و ۱ ساعت کار مونتاژ نیاز است.
  • سود حاصل از فروش هر واحد محصول A برابر ۳ واحد پولی و برای محصول B برابر ۵ واحد پولی است.
  • کارگاه در هفته حداکثر ۸ ساعت ماشین‌کاری و ۷ ساعت مونتاژ در اختیار دارد.

کارگاه می‌خواهد بداند از هر محصول چه تعداد تولید کند تا سودش بیشینه شود.

۱. تعریف متغیرهای تصمیم:

  • متغیر : تعداد محصول A که باید تولید شود.
  • متغیر : تعداد محصول B که باید تولید شود.

۲. تابع هدف:

هدف، بیشینه‌سازی سود کل است:

۳. محدودیت‌ها:

محدودیت ماشین‌کاری:

محدودیت مونتاژ:

محدودیت‌های عدم منفی بودن (تعداد تولید نمی‌تواند منفی باشد):

قبل اینکه بخواهیم مسأله را حل کنیم، اول جوابش را ببینیم.

صفحهٔ آبی رنگ، مقدار سود ما از تولید به ازای و های مختلف است. محدودیت‌های برای این دو متغیر هم در فضای سبز نشان داده شده‌اند. از روی نمودار مشخص است که بالاترین نقطه در صفحهٔ آبی که حداکثر سود ماست مقادیر متغیرها به این شرح هستند:

  • متغیر پایه‌ای مقدار ۲ را دارد.
  • متغیر پایه‌ای مقدار ۳ را دارد.

اما در ابتدای کار، نمی‌توان چنین جوابی را حدس زد. همانطور که جلوتر می‌بینید، ما از روشی به نام سیمپلکس3 استفاده می‌کنیم که به طور تکرارشونده مسأله را حل می‌کند. ما جواب اولیه‌ای در نظر می‌گیریم که در آن هر دوی متغیرها ۰ هستند. و به بعد مرور روی صفحهٔ سبزرنگ حرکت می‌کنیم تا در نهایت به نقطهٔ قرمز رنگ برسیم که نقطهٔ بهینهٔ ماست.

روش سیمپلکس بر این اصل استوار است که اگر جواب بهینه‌ای برای یک مسئله برنامه‌ریزی خطی وجود داشته باشد، حداقل یکی از گوشه‌های ناحیه شدنی (مثل گوشه‌های صفحهٔ سبز رنگ) جواب بهینه خواهد بود. این روش به ما اجازه می‌دهد تا از یک گوشه شروع کنیم و به صورت هوشمندانه به گوشه‌های مجاور که جواب بهتری ارائه می‌دهند حرکت کنیم، تا زمانی که به گوشه‌ای برسیم که هیچ حرکت دیگری نتواند جواب را بهبود بخشد.

دربارهٔ مارپیچ بیشتر بخوانید:

Footnotes

  1. Annealing

  2. Linear Programming

  3. Simplex