در حل مسئله مستقیم الاستیسیته به روش المان مرزی، معادلات حاکم، هندسه حفرههای درونی جسم و برخی از شرایط مرزی معین هستند. حل مستقیم مسئله منجر به یافتن جا به جاییها در نقاطی از مرز جسم که بردارهای تراکشن به عنوان شرط مرزی معلومند و جا به جاییها روی مرز مشترک حفرههای داخلی جسم می شود. همچنین ترکشنها در نقاطی از مرز جسم که جا به جاییها به عنوان شرط مرزی معلومند، محاسبه میشوند.
شکل۳-۸ شمایی از مسئله دو حفرهای همراه با نحوه المان بندی مرزها را نشان میدهد.
روی مرزهای جسم جمعاً ۲۰ المان وجود دارد. نحوه المان بندی به این صورت است که در مرزهای خارجی پادساعتگرد و در مرزهای داخلی جسم ساعتگرد المان بندی می شود.
شکل۳-۸: شمایی از مسئله دو حفرهای همراه با نحوه المان بندی مرزها
در این پروژه، مسئله معکوس به این صورت است که موقعیت و هندسه حفرههای داخل جسم مجهول است، ولی جا به جاییها نامعلوم بر روی سطح جسم یعنی جا به جاییها در نقاطی که ترکشنها اعمال میشوند، قابل اندازه گیری هستند.
برای شبیه سازی مسئله ماتریسهای زیر را تعریف میشوند:
: بردار ستونی شامل M جا به جایی اندازه گیری شده مرزی.
: بردار ستونی شامل همان M جا به جایی مرزی که بوسیله روش المانهای مرزی محاسبه میشوند.
: بردار ستونی شامل n پارامتر مجهول که باید در مسئله معکوس تخمین زده شوند.
هر حفره با یک مرکز مختصات و مجموعه ای از شعاعها به زوایای مساوی تخمین زده می شود. رابطه زیر اندازه این زوایه را محاسبه می کند. بنابراین برای تخمین مشخصات یک حفره درون جسم، ماتریس x شامل پارامترهای مجهول به صورت زیر در نظر گرفته می شود:
۳-۱۸
۳-۱۹
که تعداد شعاعها در هندسه شکل است.
در توسعه کار مطابق شکل (۳-۸) برای تخمین موقعیتها و مرزهای دو حفره درون جسم، ماتریس x به صورت زیر در نظر گرفته می شود:
۳-۲۰
در مساله معکوس تابع هدف به صورت مجموع مربعات تفاضل جا به جاییهای اندازه گیری شده و جا به جاییهای محاسبه شده با بهره گرفتن از حل مساله مستقیم تعریف می شود.
۳-۲۱
از علامت برای معرفی مقادیر محاسبه شده توسط الگوریتم معکوس استفاده شده است.
۳-۵ پیاده سازی الگوریتم ژنتیک
برای اجرایی کردن استفاده از الگوریتم ژنتیک، نیاز به یک طرح کلی از نحوه عملیاتی کردن این الگوریتم داریم. این طرح معمولا بر حسب نوع مسئلهای که با آن سرو کار داریم ریخته می شود. با توجه به خاص بودن این مسئله و قیدهای اعمالی، برای بهتر شدن روند کار و افزایش سرعت، عملگرهای خاصی تعریف شده است.
مشکل عمدهای که در این پروژه با آن روبه رو هستیم، اثر تداخل دو حفره داخلی با یکدیگر و تولید کروموزمهای معیوب در الگوریتم ژنتیک است. یعنی اگر در یک تولید نسل، دو حفره داخل یکدیگر قرار گیرند یا در مرزهایشان با هم تداخل داشته باشند الگوریتم بایستی به طریقی عمل کند که بدون حذف والدین و کاهش جمعیت، اجازه دهد برنامه عدد تصادفی مناسب جهت تولید دو حفرهای که شروط هندسی مناسب تعریف شده در مسئله را دارند تولید کند. همچنین در برخی نسلها جفت کروموزمهایی به وجود میآیند که گرچه تداخلی با شرایط هندسی مسئله ندارد، اما توانایی تولید نسل شایسته را نیز دارا نیستند و به خاطر تکرار در تخصیص اعداد تصادفی به این موارد توسط الگوریتم ژنتیک، سرعت همگرایی به شدت پایین می آید. لذا با تخصیص عملگرها و توابع جریمهای خاص برای ارضای شرایط مسئله، سرعت همگرایی را فوق العاده بالا میبرد و از حدسهای نامربوط در همان ابتدا جلوگیری به عمل می آید. عملگرهای کلی الگوریتم ژنتیک همگی در ابتدای فصل مورد بررسی قرار گرفتند، لذا در اینجا فقط به اصلاح عملگرهایی پرداخته می شود که نقش تولید افراد را به عهده دارند.
تولید افراد در ژنتیک، در شروع کار در جمعیت اولیه و سپس در عملگر تقاطع و عملگر جهش در طی نسلهای متوالی صورت میگیرد. بقیه مراحل ژنتیکی در گزینش، تعدیل و تعداد افراد نخبه نقش دارند. بنابراین با دستورالعملهای خاصی در تولید جمعیت اولیه، تقاطع و جهش میتوان تولید افراد مناسب را جهتدهی کرد و از حدسهای تصادفی و پرت الگوریتم جلوگیری به عمل آورد.
در این تحقیق با توجه به بد وضع بودن مسئله معکوس، روشی فرا ابتکاری بر پایه الگوریتم ژنتیک در تعیین حدس اولیه ارائه می شود. روش کار بدین صورت است که با توجه به تابع هدف و جا به جاییهای اندازه گیری شده، حدس اولیه حفرهها به شکل دایره در نظر گرفته می شود. چون میتوان دایره را حداقل با سه پارامتر به صورت مختصات مرکز و یک شعاع تعریف کرد. بنابراین کار الگوریتم ژنتیک پیدا کردن حفره دایرهای شکلی است که بتواند تابع هدف (۳-۲۱) را حداقل کند یا به عبارتی آن را کمینه کند و به عنوان بهترین حدس اولیه در شروع یک روش محلی بکار میرود. بنابراین ماتریس تخمین زده شده توسط الگوریتم ژنتیک برای یک حفره به صورت زیر تعریف می شود:
۳-۲۲
در توسعه کار برای تخمین دو حفره داخلی ماتریس تخمین زده شده توسط الگوریتم ژنتیک به صورت زیر تعریف می شود:
۳-۲۳
مطابق شکل (۳-۸)، x و y مختصات مرکز حفره دایرهای شکل و شعاع حفره دایرهای شکل میباشد. گرههای داخلی بر روی مرز دایره تحت زوایای مساوی از مرکز تخمین زده میشوند. در این تحقیق بنا به ماهیت مسئله تعیین شکل جوابها (کروموزمها) برای الگوریتم ژنتیک به صورت بردار (۳-۲۳) اما نرمال شده در نظر گرفته می شود. با توجه به نحوه انتخاب هندسه حفرهها نمی توان کروموزمهای مربوطه و فرزندان حاصل از آنها را بطور کاملا تصادفی تولید کرد. چرا که در این صورت هیچ تضمینی وجود ندارد که جوابها موجه باشند. منظور از جواب موجه این است هندسه مربوطه شرایط یک حفره داخلی را داشته باشد و مرزهای جسم را قطع نکند و یا حفرهها با هم تداخل نداشته باشند. این کار علاوه بر زمان زیاد، همگرایی نتایج را نیز مختل می کند. بنابراین عملگرهایی که نقش تولید را به عهده دارند، متناسب با شرایط مسئله شبیه سازی میشوند.
۳-۵-۱ جمعیت اولیه
در ابتدا باید تعداد جمعیت اولیه به گونه ای انتخاب شود که هم سرعت همگرایی زیاد نباشد و هم تعداد کروموزم کافی برای جستجو در کل فضای مورد بررسی موجود باشد. در این تحقیق با سعی و خطای فراوان، با توجه به مقدار خطا و پراکندگی خطا، واریانس مربوطه و همچنین زمان اجرای محاسبات، اندازه جمعیت اولیه ۱۰۰۰ در نظر گرفته شده است. بنا به رابطه (۳-۲۳) رشته های تولید شده به دو قسمت تقسیم میشوند. سه پارامتر اول مربوط به حفره اول میباشد و پارامترهای چهارم تا ششم مربوط به حفره دوم است که برای هر حفره دو پارامتر اولی مختصات x و y مرکز حفره و پارامتر سوم متناظر با شعاع حفره هستند. از آنجا که کادر شکل مورد بررسی در این پروژه یک مربع ۴×۴ است بنابراین ۲ ژن اول که برای تولید مرکز هر حفره مورد استفاده قرار میگیرند، محدودیتی در انتخاب ندارند و به طور تصادفی عددی در این کادر اختیار می کنند. اما شعاع تخمینی بنا به موقعیت نقطه مرکز باید به گونه ای محاسبه شود که با مرزهای خارجی جسم تداخل نداشته باشند. مطابق شکل (۳-۸) هرگاه جسم مورد نظر به صورت قاب مستطیلی با ابعاد a و b انتخاب شود، شعاع مناسب تخمینی بایستی شرایط زیر را ارضاء کند:
۳-۲۴
بنابراین در تعیین شعاع تخمین زده شده برای حفره اول اگر این شرایط را داشته باشد، به عنوان یک شعاع مناسب برگزیده می شود. در غیر از این صورت مقدار تصادفی دیگری انتخاب شده و مراحل تا انتخاب یک شعاع مناسب تکرار می شود.
در قسمت دوم یعنی سه پارامتر چهارم، پنجم و ششم مربوط به حفره دوم علاوه بر شرایط ذکر شده، یعنی عدم تداخل با مرزهای خارجی جسم، میبایست شرایط عدم تقاطع با حفره اول را نیز حفظ کند. بدین معنی که علاوه بر اینکه حفره میبایست در داخل کادر قرار بگیرد، نباید حفره اول را نیز قطع کند و حتی در داخل حفره اول نیز قرار نگیرد. بنابراین ۲ ژن چهارم و پنجم بایستی شرایط زیر را ارضاء کنند.
۳-۲۵
این انتخاب با تکرار تصادفی ادامه مییابد تا مرکزهای مناسبی برای حفرهها بدست آید. برای تعیین شعاع حفره دوم عددی در کادر مورد نظر انتخاب می شود. این عدد تصادفی بر مینیمم فاصله مرکز بدست آمده تا مرزهای جسم و تا مرز حفره تقسیم می شود.
۳-۲۶
اندازه خط المرکزین دو حفره است. بدین ترتیب با انتخاب این شعاع دو حفره دایرهای شکل مجزا و کروموزمهایی با صلاحیت یک جواب موجه بدست میآیند.
۳-۵-۲ عملگر تقاطع
در تقاطع از پیوند دو والد، فرزندان جدیدی حاصل می شود. اگر فرزندان تولید شده شرایط مربوط به هندسه دو حفره را در بازه خواسته شده، نداشته باشند به عنوان یک جواب نامربوط تلقی شده، از دور محاسبات خارج میشوند. این کار علاوه بر صرف زمان زیاد، همگرایی نتایج را نیز کند می کند. بنابراین با تعیین یک عملگر تقاطع خوب علاوه بر سرعت محاسبات، همگرایی جواب نیز به شدت افزایش مییابد]۱۷[.
عملگر تقاطع بصورت زیر انتخاب شده است:
۳-۲۷
همانطور که گفتیم بعد از آنکه یک کروموزم جدید حاصل از عملگر تقاطع تولید شد، ژنهای سوم و ششم مربوط به شعاع حفره اول و دوم باید شرط زیر را ارضاء کند:
& & ۳-۲۸
مقصود از این عملگر این است که برای تولید فرزند، از دو کروموزم والد با حدس یک بردار تصادفی ® ژنها بطور تک تک تولید میشوند. برای تولید دو ژن اول و ژنهای چهارم و پنجم یعنی مختصات مراکز حفرهها محدودیتی در ایجاد این اعداد تصادفی وجود ندارد و با این انتخاب مراکزی مابین مراکز قبلی ایجاد می شود. قسمت پیچیده مساله مربوط به تعیین شعاعهای مناسب حفرهها برای کروموزمهای فرزند یعنی ژنهای سوم و ششم است. این اعداد تصادفی به گونه ای انتخاب می شود که بر طبق معادله (۳-۲۴) و (۳-۲۵) و (۳-۲۶) شرایط مطلوب را که همان عدم تداخل و عدم قطع مرزهای کادر میباشد را ارضاء کنند. در برآوردن این شرایط علاوه بر تکرار روند عادی برنامه، با محدود کردن تعداد تکرار و استفاده از توابع جریمهای در برنامه نویسی تمهیداتی در نظر گرفته شده است که شعاعهای مورد نظر مطلوب و در گستره خواسته شده باشد و حداقل زمان اجرا را نیز دارا باشد. در این عملگر مخصوصا در نسلهای اولیه که تنوع افراد زیاد است، جریمه شدن کروموزمها و حذف از گردونه محتمل میباشد. با سعی و خطا نرخ تقاطعی مناسب مقدار ثابت ۸/۰ انتخاب شده است.
۳-۵-۳ عملگر جهش
همانطور که در بالا گفته شد ۸/۰ کروموزمها به روش تقاطع و ۲/۰ به روش جهش انتخاب میشوند، اما در این مسئله هرگاه این عوض شدن کاملا تصادفی صورت گیرد، احتمال اینکه کروموزم حاصل صلاحیت یک مجموعه جواب مناسب را نداشته باشد، زیاد است و همانند مسئله تقاطع علاوه بر زمان زیاد، همگرایی مسئله را نیز به تعویق می اندازد و در نتیجه همه ژنهای یک کروموزم دچار تغییر نمیشوند. علاوه بر این عملگر جهش به عنوان یکی از موثرترین عملگرها در پیدا کردن نقطه بهینه مطلق و فرار از نقاط بهینه محلی بایستی درست سازماندهی شود. با انتخاب یک عملگر جهش خوب میتوان روند محاسبات را بهبود بخشید.
عملگر جهش در این مسئله به صورت عملگر جهش یکنواخت در نظر گرفته شده است و به ژنهایی که برای جهش انتخاب شده اند یک عدد تصادفی رندوم تخصیص داده می شود با این تفاوت که بایستی شرایط زیر ارضاء شود.
اگر ۳-۲۹
این شرط به این علت گذاشته شده که اگر همه ژنها در یک کروموزم تغییر کند، کروموزم جدید دیگر حامل رفتار و سوابق والدین خود نیست. مقصود اینکه هرگاه احتمال انتخاب ژن والدی از نرخ جهش کمتر شد، آن ژن به عنوان یک ژن جهش یافته پذیرفته می شود و عددی تصادفی به آن تعلق میگیرد.
برای ژن سوم و ژن ششم (مربوط به اطلاعات شعاعی) داریم:
& & 3-30
اگر این ژن انتخابی مختصات یکی از مراکز بود به اجبار شعاعها نیز بررسی می شود و در صورت عدم صلاحیت، شعاع مناسب نیز تخمین زده می شود. اگر این ژن انتخابی یکی از شعاعهای تخمینی باشد، این عدد تصادفی بایستی شرایط شعاع مناسب که در معادله (۳-۳۰) آمده را دارا باشد. البته مشابه عملگر تقاطع در برآوردن این شرایط علاوه بر تکرار روند عادی برنامه، با محدود کردن تعداد تکرار و استفاده از توابع جریمهای در برنامه نویسی تمهیداتی در نظر گرفته شده است که شعاعهای مورد نظر مطلوب و در گستره خواسته شده باشد و حداقل زمان اجرا را نیز دارا باشد. با سعی و خطاهای فراوان نرخ جهش (( pm مقدار نسبتا بزرگ و ثابت ۱/۰ را گرفته است. دلیل این انتخاب این است که کروموزم انتخابی برای جهش شانس بیشتری در تغییر داشته باشد. لازم به ذکر است که در مسئله تک حفرهای نرخ جهش با سعی و خطا مقدار ۱۰/ ۰ انتخاب شده بود ]۲۸[.
۳-۵-۴ توابع جریمهای
با اعمال توابع جریمهای مناسب میتوان از حضور کروموزمهایی که گاهی در مراحل تقاطع و جهش، از قیدها رها شده اند، در فرایند تولید نسل جلوگیری کرد. تابع جریمه به صورتی است که کلیه شرایط هندسی هر کروموزم را بررسی می کند. در صورت ارضای شرایط، معیار برازندگی کروموزم با تابع هدف تعیین و در غیر این صورت با عدد بزرگی جریمه می شود. برای مثال در روند اجرای برنامه مخصوصا در نسلهای اولیه که تنوع حفرهها در فضای حل زیاد است، شاهد آن بودیم که اگر یکی از والدها دایرهای خیلی بزرگ و یکی خیلی کوچک باشد، با انتخاب هر ضریب تقاطعی حفرههای تولید شده در نسل بعد دچار تداخل میشوند. پس با اعمال ترفند برنامه نویسی برای این والدهای نامناسب به تابع برازندگی آن یک عدد بزرگ، مثلا عدد ۱، را اختصاص میدهیم تا عملا شانس حضورش در چرخه خیلی کم باشد. ابتکار دیگری که در برنامه نویسی توابع جریمهای انجام شد، در مواجه با والدینی بود که به صورت ضربدری در فضای حل قرار داشتند.
همانطور که گفته شد هر کروموزم در مسئله دو حفرهای، شامل ۶ ژن است، که سه تای اول مربوط به حفره اول و سه تای دوم مربوط به حفره دوم میباشد. اگر در انجام عملیات تقاطع بین دو کروموزم، حفرهها به صورت ضربدری قرار داشته باشند و فاصله حفرهها از یکدیگر کم باشند، بچه تولیدی حتما دچار تداخل با دیگری می شود. در این حالت تابع جریمهای نوشته شده که در یک کروموزم جای ژن اول تا سوم را با ژن چهارم تا ششم عوض می کند.
۳-۶ برنامه رایانهای
همانطور که توضیح داده شد، روندی که در این پژوهش برای شناسایی حفرهها مورد استفاده قرار میگیرد، به این صورت خواهد بود که ابتدا موقعیت و شکل دو حفره به صورت دایرهای توسط الگوریتم ژنتیک حدس زده می شود. در واقع در این فرایند فارغ از هر شکلی که حفرهها داشته باشند، این حدس اولیه زده می شود. علت این امر نیز این میباشد که الگوریتم ژنتیک یک الگوریتم تصادفی بوده و از این رو به شدت تابع تعداد متغیرها میباشد. هنگامی که دو حفره به صورت دایرهای حدس زد میشوند، برداری که الگوریتم ژنتیک اقدام به محاسبه آن می کند به صورت زیر میباشد.
راهنمای نگارش پایان نامه درباره : امکان تشخیص غیر مخرب شکل هندسی حفره ها با ...