بخشی از مقاله
چکیده
الگوریتمهای ژنتیک تکنیکی محاسباتی بر اساس رشتههای تکامل است که اخیرا در رشته معماری به منظور مطالعه مشکلات پیچیده موجود در عملکرد و فرم پروژههای معماری به وجود آمده و معرفی شده است. علی رغم آنکه در خصوص به کاربردن الگوریتمهای ژنتیک تمایل فزایندهای به چشم میخورد و علاقه به آن روزبه روز بیشتر میشود؛ لیکن هنوز هم بررسی نظاممندی در مورد روال کار آن و کاربردهایش در معماری صورت نگرفته است.
این پژوهش به روش مطالعه کتابخانهای ضمن بررسی ساختار الگوریتمهای ژنتیک به دنبال پاسخگویی به سوالات زیر میپردازد که: ضرورت استفاده از الگوریتمهای ژنتیک در معماری امروز چیست؟ آیا الگوریتمهای ژنتیک جهت تامین نیازهای ویژه معماری مورد استفاده قرار میگیرد یا صرفا شامل فرمهای پیچیده و ابتکاری است؟ چگونه میتوان از الگوریتمهای ژنتیک در حل مسائل طراحی کمک گرفت؟ و در آخر اینکه آیا الگوریتمهای ژنتیک در خدمت واقعیت است یا اشکال انتزاعی و غیرواقعی یک دنیای ذهنی!
در راستای پاسخدهی به این پرسشها، این پژوهش با بررسی الگوریتمهای ژنتیک در سایر رشتهها و در معماری و همچنین مفهوم کاربردهایش در معماری میپردازد و در نهایت، مقدمات یک عملیات پارامتریک در معماری شرح داده میشود.
مقدمه
از دهه 1990، در روش معماری پیشرو تغییر و تحولی به وجود آمده به نحوی که از تکنولوژیهای نوین زیست شناسی تکاملی جهت بررسی یا به تصویر کشیدن پیچیدگیهای بسیاری که در معماری امروزی مورد توجه قرار گرفته است استفاده میکند. از آنجایی که مقدار اطلاعات و سطح پیچیدگی در اکثر پروژههای ساختمانی بزرگتر و بیشتر از توانایی های طراحان برای درک و پیشبینی آنهاست به گونهای که با روشهای سنتی طراحی نمیتوان این لایه پیچیدگی را در زمان مناسب حل نمود؛ الگوریتمهای ژنتیک در میان سایر تکنیکهای تکاملی و پویا به عنوان ابزار بهینهسازی در معماری مورد استفاده قرارگرفته است.
الگوریتمهای ژنتیک در گام نخست در برطرف نمودن مشکلات ساختمانی از قبیل ساختار سازهای و تاسیساتی کاربرد دارد و در گام بعدی به عنوان راه حل هایی احتمالی و تصادفی جهت حل مشکلات بهینه سازی و مسائل تحقیقاتی میتوان بدان نظر داشت. در کاربردهای بعدی، از الگوریتمهای ژنتیک به عنوان حوزه مفهومی نوظهور و غیر منتظره؛ که به منظور ایجاد نمادها و ارایه راه حلهای ابتکاری به صورت پروسهای که با آن ساختارهای جدید با پیچیدگی های فراوان خلق می شود؛ نام برده می شود.
الگوریتمهای ژنتیک
الگوریتم ژنتیک، الهامی از علم ژنتیک و نظریه تکامل داروین است و بر اساس بقای برترینها یا انتخاب طبیعی استوار است. یک کاربرد متداول الگوریتم ژنتیک، استفاده از آن به عنوان تابع بهینهکننده است. همچنین الگوریتمهای ژنتیک ابزار سودمندی در بازشناسی الگو، انتخاب ویژگی، درک تصویر، بهینهسازی، تکامل تدریجی، برنامهسازی خودکار، یادگیری ماشین، یاددهی رفتار به ربات و ... میباشد
اگرچه کارهایی توسط یک زیست شناس به نام فریزر - Fraser - در زمینه مدل سازی تکامل در سیستمهای بیولوژیک در دهه 60 میلادی صورت گرفت ولی الگوریتمهای ژنتیک برای کاربردهای مهندسی و به صورت امروزی آن نخستین بار توسط »جان هلند« - John Henry Holland - متخصص علوم کامپیوتر دانشگاه میشیگان در سال 1975 پیشنهاد گردید.
کار وی آغاز تمامی کوششها برای کاربرد الگوریتم ژنتیک در مهندسی است. پس از آن کارهای »دی جونگ - Kenneth A De Jong - « در سال 1975 در زمینه بررسی و مقایسه چندین روش الگوریتم ژنتیک پایههای نظری بحث را فراهم آورد. [2] این الگوریتم با الهام از طبیعت بر پایه اصل تکاملی »پایداری بهترینها - Survival of the fittest - « استوار است. [3] الگوریتم ژنتیک اگرچه پس از الگوریتم استراتژی تکاملی پیشنهاد گردید ولی مشهورترین روش از بین الگوریتمهای تکاملی است. در یک الگوریتم ژنتیک یک جمعیت از افراد طبق مطلوبیت آنها در محیط بقا مییابند.
افرادی با قابلیتهای برتر، شانس ازدواج و تولید مثل بیشتری را خواهند یافت. بنابراین بعد از چند نسل فرزندانی با کارایی بهتر بوجود میآیند. در الگوریتم ژنتیک هر فرد از جمعیت به صورت یک کروموزوم معرفی میشود. کروموزومها در طول چندین نسل کاملتر میشوند. در هر نسل کروموزومها ارزیابی میشوند و متناسب با ارزش خود امکان بقا و تکثیر مییابند. تولید نسل در بحث الگوریتم ژنتیک با عملگرهای همبری و جهش صورت میگیرد. والدین برتر بر اساس یک تابع برازندگی انتخاب میشوند
ویژگی و محدودیت الگوریتمهای ژنتیک
الگوریتمهای ژنتیک ویژگیهایی دارد که آن را در مقایسه با دیگر الگوریتمهای بهینه سازی، متفاوت و برتر ساخته است؛ که به برخی از مهمترین آنها به شرح ذیل اشاره می گردد:
الف - الگوریتمهای ژنتیک می تواند به جای بهکارگیری از متغیرها، از به رمز درآمده آنها، یعنی کروموزومها، استفاده کند. در نتیجه نیازی به تعریف مسأله به صورت ریاضی ندارد. بنابراین میتوان حدس زد که این الگوریتم می تواند پاسخ گستره وسیعی از مسائل را بیابد.
ب - الگوریتم ژنتیک به طور هم زمان شمار زیادی از نقاط فضای پاسخ را به کار میگیرد. این ویژگی، احتمال گرفتار شدن الگوریتم در نقاط بهینه محلی را تا اندازه زیادی کاهش میدهد.
ج - الگوریتم ژنتیک، همگرایی به نقطه بهینه محلی را تضمین نمیکند، ولی اغلب به نقاط تقریبا بهینه و پذیرفتنی همگرا میشود.
د - این الگوریتم به سادگی برای پاسخیابی پرسشهایی که شمار زیادی متغیر دارند به کار گرفته میشود.
ه - الگوریتم ژنتیک، ساده است و به اطلاعات کمکی مانند مشتقهای تابع هدف نیازی ندارد. در نتیجه برای بهینهسازی روی یک تابع هدف بسیار پیچیده، ناپیوسته یا بیمشتق، و یا سیستم هایی که تعریف ریاضی مشخصی ندارند و با شبیهسازی یا اعمال مستقیم پارامترها به سیستم واقعی آزموده میشوند، بسیار مناسب است.
و - الگوریتم ژنتیک در پایان میتواند به جای یک پاسخ، مجموعهای از پاسخهای بهینه را ارائه کند. این ویژگی در مسائل بهینه سازی چند هدفی اهمیت دارد.
با این وجود بزرگترین محدودیت آنها چگونگی نوشتن عملگر برازندگی - Fitness - است که منجر به بهترین راه حل برای مسئله شود. اگر این کارکرد برازش به خوبی و قوی انتخاب نشود ممکن است باعث شود که راه حلی برای مسئله پیدا نشده و یا مسئلهای دیگر به اشتباه حل شود.
به طور اختصار باید گفت: الگوریتم ژنتیک یک تکنیک برنامهنویسی است که از تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده میکند. مسئلهای که باید حل شود ورودی است و راهحلها طبق یک الگو کدگذاری میشوند که تابع برازندگی نام دارد. هر راه حل کاندید را ارزیابی میکند که اکثر آنها به صورت تصادفی انتخاب میشوند. مناسبترین آنها باقی میمانند و بقیه کنار گذاشته میشوند. مناسبترین افراد با یکدیگر جفتگیری - جابجایی عناصر دی ان ای - و با تغییر به سمت تکامل پیش میروند.
عملگرهای ژنتیکی
الگوریتمهای ژنتیک برای حل مسائل - تولید مثل - از سه قانون اصلی - عملگر - انتخاب، تلفیق و جهش - دیاگرام - 1 پیروی می کنند.
دیاگرام :1 عملگرهای ژنتیک، نگارنده
انتخاب : - Selection - در مرحله انتخاب، یک جفت از کروموزومها برگزیده میشوند تا برای تولید نسل بعد با هم ترکیب شوند. به عبارتی این عملگر رابط بین دو نسل است و بعضی از اعضای نسل کنونی را به نسل آینده منتقل مینماید. معیار در انتخاب اعضاء ارزش تطابق و برازنده بودن آنها میباشد اما روند انتخاب حالتی تصادفی دارد. برخی از روشهای انتخاب چرخ رولت، انتخاب ترتیبی، انتخاب بولتزمن، انتخاب حالت پایدار و ... میباشند.
تلفیق : - Crossover - در طبیعت بقای نسل یکی از مهمترین فاکتورهاست و تنها عملگر ممکن برای این امر تلفیق - آمیزش-ترکیب - است. آمیزش با تعویض ژنها، بین دو کروموزوم انجام میگردد و هر کدام از کروموزومها خصوصیاتی از خود را به فرزندان - نسل بعدی- انتقال میدهند. این گام، فرآیندی است که در آن نسل قدیمی کروموزومها با یکدیگر مخلوط و ترکیب میشوند تا نسل تازهای از کروموزومها بهوجود بیاید. مهمترین عملگر در الگوریتم ژنتیک، عملگر ترکیب است. جفتهایی که در قسمت انتخاب، به عنوان والد در نظر گرفته میشوند، در این قسمت ژنهایشان را با هم مبادله میکنند و اعضایی جدید بهوجود میآورند. متداولترین روشهای ترکیب جابهجایی دودوئی، جابهجایی حقیقی، ترکیب تک نقطهای، ترکیب دو نقطهای، ترکیب چندنقطهای و ... است.
جدول :1 برخی از روشهای ترکیب
جهش : - Mutation - یک تغییر تصادفی بر روی افراد ایجاد میکند و افراد جدیدی را در جمعیت تولید میکند. این عملگر یک ژن از یک کروموزوم را به طور تصادفی - از یک توزیع یکنواخت یک بیت به صورت تصادفی - انتخاب نموده و سپس محتوای آن ژن را تغییر میدهد.
اگر ژن از جنس اعداد دودویی باشد، آن را به وارونش تبدیل میکند و چنانچه متعلق به یک مجموعه باشد مقدار یا عنصر دیگری از آن مجموعه را به جای آن ژن قرار میدهد. عملگر جهش برای به وجود آوردن فرزند فقط از یک والد استفاده می کند؛ که اینکار با انجام تغییرات کوچکی در رشته اولیه به وقوع می پیوندد. جهش باعث جستجو در فضاهای دست نخورده مسأله میشود. مهمترین وظیفه جهش اجتناب از همگرایی به بهینه محلّی است. [7]
شرط خاتمه
تکرار عملگرها تا زمانی که شرایط توقف برآورده شود ادامه مییابد و آن، زمانی است که به تعداد ثابتی از نسلها برسیم، بودجه و یا زمان اختصاص داده شده تمام شود، یک فرد - فرزند تولید شده - پیدا شود که مینیمم - کمترین - ملاک را برآورده کند، بیشترین درجه برازش فرزندان حاصل شود، نتایج بهتری حاصل نشود و یا یکی از ترکیبهای اشاره شده در بالا بهدست آید.
دیاگرام :2 فرآیند عملکرد الگوریتمهای ژنتیک، نگارنده
الگوریتمهای ژنتیک در معماری
در حالی که دیگر رشتهها ابزار محاسباتی خود را بر اساس الگوریتمها اصول زیست شناسی تکاملی پذیرفته اند، اما فرآیندهای تکاملی تاکنون در طراحی معماری کاربردهای کمی داشتهاند. اخیرا تغییر قابل توجهی در تحقیقات معماری چنین تکنیکهایی برای بررسی مشکلات پیچیده مشاهده شده است. علاوه بر این، یکی از مشکلات اصلی در معماری امروزی، کمیت و مقدار اطلاعات و سطح پیچیدگی موجود در هر یک از پروژههای ساختمانی است؛ که لزوم پرداختن به این امر را ضرورت میبخشد.