بهینه سازی در مهندسی عمران

مباحثی در زمینه بهینه سازی سازه ها والگوریتم های بهینه یابی درمهندسی عمران

بهینه سازی در مهندسی عمران

مباحثی در زمینه بهینه سازی سازه ها والگوریتم های بهینه یابی درمهندسی عمران

بهینه سازی  در مهندسی عمران

انسان می‌خواهد بهترین را تجسم و توصیف کرده و به آن دست یابد .اما از آنجایی که می‌داند نمی‌تواند تمام شرایط حاکم بر بهترین را به خوبی شناسایی و تعریف نماید در بیشتر موارد به جای جواب بهترین یا بهینه مطلق، به یک جواب رضایت‌بخش (وارنر2 1996،) بسنده می‌کند. هم‌چنین انسان در قضاوت عملکرد دیگران، معیار بهترین را در نظر نمی‌گیرد بلکه آنان را به صورت نسبی مورد ارزیابی قرار می‌دهد (گلدبرگ3 1989، 7). بنابراین انسان به دلیل ناتوانی خود در بهینه‌سازی، به بهبود ارزش ویژه‌ای می‌دهد.
((بهینه‌سازی به دنبال بهبود عملکرد در رسیدن به نقطه یا نقاط بهینه است ))

آخرین نظرات
نویسندگان

الگوریتم تکاملی تفاضلی (Differential evolution algorithm)

چهارشنبه, ۲۵ شهریور ۱۳۹۴، ۰۲:۵۶ ب.ظ

الگوریتم تکامل تفاضلی

الگوریتم تکاملی تفاضلی (DE) نخستین بار در سال 1995 توسط استورن و پرایس معرفی شد.این دو نشان دادند که این الگوریتم توانایی خوبی در بهینه سازی توابع غیرخطی مشتق ناپذیر دارد که به عنوان روشی قدرتمند و سریع برای مسائل بهینه سازی در فضاهای پیوسته معرفی شده است.

الگوریتم (DE) جهت غلبه بر عیب اصلی الگوریتم ژنتیک، یعنی فقدان جستجوی محلی دراین الگوریتم ارائه شده است، تفاوت اصلی بین الگوریتم های ژنتیکی و الگوریتم (DE)در عملگر انتخاب selection operators می باشد.

در اپراتور انتخاب GA ،شانس انتخاب یک جواب به عنوان یکی از والدین وابسته به مقدار شایستگی آن می باشد،اما در الگوریتم DE  همه جواب ها دارای شانس مساوی جهت انتخاب شدن می باشند. یعنی شانس انتخاب شدن آنها وابسته به مقدار شایستگی آنها نمی باشد، پس از این که یک جواب جدید با استفاده از یک اپراتور جهش خود-تنظیم و اپراتور crossover  تولید شد،جواب جدید با مقدار قبلی مقایسه می شود و در صورت بهتر بودن جایگزین می گردد.

 در این الگوریتم  بر خلاف دیگر الگورتیم ها که اول عملگر crossover و سپس عملگر mutation انجام می شود به گونه ای که ابتدا عملگرجهش اعمال شده و سپس عملگر تقاطع اعمال می شود تا بدین وسیله نسل جدید ایجاد گردد.

 برای اعمال عملگر mutation از توزیع خاصی استفاده نمی شود بلکه طول گام جهش برابر با مقدار از فاصله میان اعضای فعلی تعیین می شود.

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

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

بعد از انجام جهش ، کراس اور انجام می شود، بدین صورت که عددی تصادفی بین صفر و یک تولید شده و اگر عدد تولید شده کمتر از میزان نرخ کراس اور باشد عنصر مورد نظر در آن عضو از جمعیت،از قسمت جهش برداشته می شود در غیر اینصورت عنصر مورد نظر از مقدار اولیه عضو برداشته می شود اینقدر این کار تکرار می شود تا تمامی اعضای یک عضو یا از قسمت جهش خورده یا از مقادیر اولیه خود انتخاب گردند. سپس ماتریسی جدیدی که تولید شده با ماتریس اولیه مقایسه می شود و اگر ماتریس جدید دارای هزینه کمتری باشد جایگزین ماتریس اولیه می شود. این کار برای تمامی اعضای جمعیت انجام می شود.

        

پاورپوینت :الگوریتم تکاملی تفاضلی (DE) - کد متلب الگوریتم

برچسب :تکامل تفاضلی - www.icasite.info

رمز تمامی فایل های داخل وبلاگ ((password:30viloptimization))

نظرات  (۲)

سلام دانلودش کردم . ولی پسورد میخواد میشه پسوردشو بدین 
پاسخ:
سلام و عرض ادب
تمامی فایل هایی که در این وبلاگ قرار داده شده، داخل فایل فشرده رمزش رو نوشتم و تمامی فایل ها رمزشون ((password:30viloptimization)) می باشد.

توضیحات بسیار عالی بود
سپاس

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی