دانش و فناوری


2 دقیقه پیش

گرفتن ویزای انگلیس در ایران

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

دوره مدیریت پروژه و کنترل پروژه با MSP

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

الگوریتم ژنتیک چیست؟



 

الگوریتم ژنتیک

 

 

الگوریتم ژنتیک چیست؟

الگوریتم ژنتیک-(Genetic Algorithm - GA) تکنیک جستجویی در علم رایانه برای یافتن راه‌حل تقریبی برای بهینه‌سازی و مسائل جستجو است. الگوریتم ژنتیک نوع خاصی از الگوریتمهای تکامل است که از تکنیکهای زیست‌شناسی مانند وراثت و جهش استفاده می‌کند.

الگوریتم ژنتیک که به‌عنوان یکی از روشهای تصادفی بهینه یابی شناخته شده, توسط جان هالند در سال ۱۹۶۷ ابداع شده‌است. بعدها این روش با تلاشهای گلدبرگ ۱۹۸۹, مکان خویش را یافته و امروزه نیز بواسطه تواناییهای خویش , جای مناسبی در میان دیگر روشها دارد.
الگوریتمهای ژنتیک معمولاً به عنوان یک شبیه‌ساز کامپیوتر که در آن جمعیت یک نمونهٔ انتزاعی (کروموزومها) از نامزدهای راه‌حل یک مسأله بهینه‌سازی به راه حل بهتری منجر شود، پیاده‌سازی می‌شوند. به طور سنتی راه‌حلها به شکل رشته‌هایی از ۰ و ۱ بودند، اما امروزه به گونه‌های دیگری هم پیاده‌سازی شده‌اند. فرضیه با جمعیتی کاملاً تصادفی منحصر بفرد آغاز می‌شود و در نسلها ادامه می‌یابد. در هر نسل گنجایش تمام جمعیت ارزیابی می‌شود، چندین فرد منحصر در فرایندی تصادفی از نسل جاری انتخاب می‌شوند (بر اساس شایستگیها) و برای شکل دادن نسل جدید، اصلاح می‌شوند (کسر یا دوباره ترکیب می‌شوند) و در تکرار بعدی الگوریتم به نسل جاری تبدیل می‌شود

برای مثال اگر بخواهیم نوسانات قیمت نفت را با استفاده از عوامل خارجی و ارزش رگرسیون خطی ساده مدل کنیم، این فرمول را تولید خواهیم کرد : قیمت نفت در زمان t = ضریب 1 نرخ بهره در زمان t + ضریب 2 نرخ بیکاری در زمان t + ثابت 1 . سپس از یک معیار برای پیدا کردن بهترین مجموعه ضرایب و ثابت‌ها جهت مدل کردن قیمت نفت استفاده خواهیم کرد. در این روش 2 نکته اساسی وجود دارد. اول این که روش خطی است و مسئله دوم این است که ما به جای اینکه در میان "فضای پارامترها" جستجو کنیم، پارامترهای مورد استفاده را مشخص کرده‌ایم.

با استفاده از الگوریتم‌ ژنتیک ما یک ابر فرمول یا طرح، تنظیم می‌کنیم که چیزی شبیه "قیمت نفت در زمان t تابعی از حداکثر 4 متغیر است" را بیان می‌کند.سپس داده‌هایی برای گروهی از متغیرهای مختلف،شاید در حدود 20 متغیر فراهم خواهیم کرد. سپس الگوریتم ژنتیک اجرا خواهد شد که بهترین تابع و متغیرها را مورد جستجو قرار می‌دهد.روش کار الگوریتم ژنتیک به طور فریبنده‌ای ساده،خیلی قابل درک و به طور قابل ملاحظه‌ای روشی است که ما معتقدیم حیوانات آنگونه تکامل یافته‌اند.هر فرمولی که از طرح داده شده بالا تبعیت کند فردی از جمعیت فرمول‌های ممکن تلقی می‌شود.

متغیرهایی که هر فرمول داده‌شده را مشخص می‌کنند به عنوان یکسری از اعداد نشان داده‌شده‌اند که معادل [دی ان ای|دی.ان.ای](DNA) آن فرد را تشکیل می‌دهند.

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

مختصراً گفته می‌شود که الگوریتم ژنتیک (یا GA) یک تکنیک برنامه‌نویسی است که از تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده می‌کند.مسئله‌ای که باید حل شود ورودی است و راه حلها طبق یک الگو کدگذاری می‌شوند که تابع fitness نام دارد و هر راه حل کاندید را ارزیابی می‌کند که اکثر آنها به صورت تصادفی انتخاب می‌شوند.

الگوریتم ژنتیک (GA) یک تکنیک جستجو در علم رایانه برای یافتن راه حل بهینه و مسائل جستجو است. الگوریتم‌های ژنتیک یکی از انواع الگوریتم‌های تکاملی‌اند که از علم زیست‌شناسی مثل وراثت، جهش، [انتخاب ناگهانی(زیست‌شناسی)|انتخاب ناگهانی]، انتخاب طبیعی و ترکیب الهام گرفته شده.

عموماً راه‌حلها به صورت 2 تایی 0 و 1 نشان داده می‌شوند، ولی روشهای نمایش دیگری هم وجود دارد. تکامل از یک مجموعه کاملاً تصادفی از موجودیت‌ها شروع می‌شود و در نسلهای بعدی تکرار می‌شود. در هر نسل، مناسبترین‌ها انتخاب می‌شوند نه بهترین‌ها.

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

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

برای هر فرد، یک جفت والد انتخاب می‌شود. انتخاب‌ها به گونه‌ای‌اند که مناسبترین عناصر انتخاب شوند تا حتی ضعیفترین عناصر هم شانس انتخاب داشته باشند تا از نزدیک شدن به جواب محلی جلوگیری شود. چندین الگوی انتخاب وجود دارد: چرخ منگنه‌دار(رولت)، انتخاب مسابقه‌ای (Tournament) ،...

 

 

الگوریتم ژنتیک

 

 

معمولاً الگوریتم‌های ژنتیک یک عدد احتمال اتصال دارد که بین 0.6 و 1 است که احتمال به وجود آمدن فرزند را نشان می‌دهد. ارگانیسم‌ها با این احتمال دوباره با هم ترکیب می‌شوند. اتصال 2 کروموزوم فرزند ایجاد می‌کند، که به نسل بعدی اضافه می‌شوند. این کارها انجام می‌شوند تا این که کاندیدهای مناسبی برای جواب، در نسل بعدی پیدا شوند. مرحله بعدی تغییر دادن فرزندان جدید است. الگوریتم‌های ژنتیک یک احتمال تغییر کوچک و ثابت دارند که معمولاً درجه‌ای در حدود 0.01 یا کمتر دارد. بر اساس این احتمال، کروموزوم‌های فرزند به طور تصادفی تغییر می‌کنند یا جهش می‌یابند، مخصوصاً با جهش بیت‌ها در کروموزوم ساختمان داده‌مان.

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


عملگرهای یک الگوریتم ژنتیک
در هر مسئله قبل از آنکه بتوان الگوریتم ژنتیک را برای یافتن یک پاسخ به کار برد به دو عنصر نیاز است: اول روشی برای ارائه یک جواب به شکلی که الگوریتم ژنتیک بتواند روی آن عمل کند لازم است. به شکل سنتی یک جواب به صورت یک رشته از بیتها، اعداد یا نویسه ها.نمایش داده می‌شود.دوم روشی لازم است که بتواند کیفیت هر جواب پیشنهاد شده را با استفاده از توابع تناسب محاسبه نماید. مثلاً اگر مسئله هر مقدار وزن ممکن را برای یک کوله پشتی مناسب بداند بدون اینکه کوله پشتی پاره شود، (مسئله کوله پشتی را ببینید) یک روش برای ارائه پاسخ می‌تواند به شکل رشته ای از بیتهای ۰ و۱ در نظر گرفته شود, که ۱ یا ۰ بودن نشانه اضافه شدن یا نشدن وزن به کوله پشتی است.تناسب پاسخ، با تعیین وزن کل برای جواب پیشنهاد شده اندازه گیری می‌شود.
روال بهینه یابی در الگوریتم ژنتیک براساس یک روند تصادفی- هدایت شده استوار می‌باشد. این روش,بر مبنای نظریه تکامل تدریجی و ایده‌های بنیادین داروین پایه گذاری شده‌است.در این روش , ابتدا برای تعدادی ثابت که جمعیت نامیده می‌شود مجموعه‌ای از پارامترهای هدف بصورت اتفاقی تولید می‌شود , پس از اجرای برنامه شبیه ساز عددی را که معرف انحراف معیار و یا برازش آن مجموعه از اطلاعات است را به آن عضو از جمعیت مذکور نسبت می‌دهیم. این عمل را برای تک تک اعضای ایجاد شده تکرار می‌کنیم , سپس با فراخوانی عملگرهای الگوریتم ژنتیک از جمله لقاح , جهش و انتخاب نسل بعد را شکل می‌دهیم و این روال تا ارضای معیار همگرایی ادامه داده خواهد شد.
بصورت متداول سه معیار به‌عنوان معیار توقف شمرده می‌شود: ۱. زمان اجرای الگوریتم ۲. تعداد نسلهایی که ایجاد می‌شوند ۳. همگرایی معیار خطا


کاربردهای الگوریتم ژنتیک :
• روندیابی هیدرولوژیکی رواناب جاری در شبکه رودخانه خشک
• کمک در حل مسایل تصمیم گیری چند معیاره
• بهینه سازی چند هدفه در مدیریت منابع آبی
• بهینه سازی و بارآرایی شبکه های توزیع نیروی برق

 

شرایط خاتمه الگوریتم‌های ژنتیک عبارتند از:

به تعداد ثابتی از نسل‌ها برسیم.

بودجه اختصاص داده‌شده تمام شود(زمان محاسبه/پول).

یک فرد(فرزند تولید شده) پیدا شود که مینیمم (کمترین) ملاک را برآورده کند.

بیشترین درجه برازش فرزندان حاصل شود یا دیگر نتایج بهتری حاصل نشود.

بازرسی دستی.

ترکیبهای بالا.

منبع :ویکی پدیا


ویدیو مرتبط :
آموزش الگوریتم ژنتیک

خواندن این مطلب را به شما پیشنهاد میکنیم :

علت مكیدن انگشت در کودکان چیست؟



 

«مكیدن شست» یا انگشت، یكى از عادات رایج دوران كودكى است. این رفتار براى كودكان خردسال كاملاً طبیعى و عادى است، ولى اگر بعد از 6 سالگى باز هم كودك مبادرت به مكیدن شست كند، نیاز به درمان و رسیدگى دارد، زیرا موجب به هم ریختگى ردیف دندان ها، فك و آرواره مى شود.

 

پژوهش ها نشان مى دهند حدود 75 درصد كودكان خردسال (تا یك سالگى) مُشت یا انگشتان خود را در دهان مى گذارند و مى مكند. انجام این كار براى این گروه سنى از كودكان آرامش بخش، سرگرم كننده و لذت بخش است. به طور معمول، كودكان زمانى مبادرت به مكیدن انگشت خود مى كنند كه یا خسته اند، یا ناراحت اند و یا حوصله شان سر رفته است.

 

 

مکیدن انگشت

 

 

علت مكیدن شست

 

انگشت مكیدن طبیعى ترین پاسخ كودك هنگام رویارویى با فشار روانى، اضطراب و مشكلات هیجانى - امنیتى است. روان شناسان معتقدند براى درمان این رفتار در كودكان زیر 6-5 سال نباید عجله كرد، زیرا بسیارى از این گونه عادت ها به تدریج و با افزایش سن كودك كاهش مى یابند و به كلى از بین مى روند.

 

 

اما اگر كودك 7 ساله اى نتواند این عادت خود را ترك كند، والدین و اطرافیان او باید درصدد درمان او برآیند، زیرا ترك چنین عاداتى در سال هاى بعد (نوجوانى) بسیار دشوارتر مى شود. در صورتى این عادت را در زمره اختلال بررسى مى كنند كه تا سنین 16-12 ادامه داشته باشد. مطالعات نشان مى دهند كه در حدود 15 درصد كودكانى كه از 5 سالگى به بعد انگشت خود را مى مكند، دچار مشكلات عاطفى - هیجانى ناشى از ورود به مدرسه و دوره پیش دبستانى هستند. بیشتر این كودكان شدیداً به پدر و مادر و اطرافیان شان وابسته و متكى هستند.

 

 

زمانى كه كودك سعى مى كند رفتار مكیدن انگشت خود را تغییر دهد، والدین و اطرافیان او باید از این تصمیم او استقبال كنند و با حمایت ها و تشویق هاى خود او را كمك و یارى نمایند. حمایت روانى براى كودك امنیت پدید مى آورد و باعث مى شود كه كودك در ناملایمات و سختى ها از خود مقاومت بیشترى نشان دهد.

 

 

 

عوارض ناشى از مكیدن شست

 

مكیدن انگشت بعد از 6 سالگى مى تواند مشكلات جدى در زمینه دندان ها، لثه و آرواره به وجود آورد. مك زدن هاى با فشار كودك به شست یا انگشتش در طول روز و شب، موجب جلو آمدگى دندان ها و ناهنجارى هاى استخوان فك او مى شود. دندان هاى ردیف بالا به سمت بیرون كشیده مى شوند و دندان هاى ردیف پائین نیز به سمت داخل دهان كج مى شوند.

 

 

مکیدن انگشت

 

 

اما سؤال بسیارى از والدین این است كه چگونه مكیدن یك انگشت كوچك مى تواند موجب ناهنجارى شدید آرواره شود؟

 

علت آن است كه استخوان بندى كودك تا قبل از 8 سالگى بسیار نرم و شكل پذیر است. متأسفانه زمانى كه كودك به مدت طولانى انگشتش را مى مكد، در شكل ظاهرى آرواره خود تغییر به وجود مى آورد. اگر كودكى نتواند عادت شست مكیدن خود را تا قبل از آن كه دندان هاى دائمی ردیف جلویى او در نیامده ترك كند، ممکن است در مدت چند ماه فك و آرواره او آسیب جدى ببیند.

 

 

علاوه بر آن، مكیدن شست یا انگشت مى تواند موجب نارسایى هاى كلامى (تلفظ اشتباه حرف هاى «ف» و «و»)، اختلال در جویدن، نوك زبانى صحبت كردن، اختلالات گفتارى (مثل لكنت زبان ، مِن مِن كردن و...)، خرخر كردن و باز ماندن دهان كودك شود. از آن جایى كه بعد از چند سال مكیدن انگشت ، حالت آرواره و صورت كودك دچار به هم ریختگى مى شود، بر خودپنداره او نیز تأثیرى منفى خواهد داشت.

 

 

 

شیوه هاى درمان

 

بهترین زمان براى ترك عادات و مشكلات رفتارى كودكان (و از جمله مكیدن انگشت) هنگامى است كه خانواده (والدین كودك و اعضاى خانواده) تغییر و تحولى در پیش رو نداشته باشند و در آرامش خاطر به سر برند. مثلاً قصد تغییر منزل، تغییر مهد (یا مدرسه)، تولد نوزاد جدید، مسافرت، متاركه، فوت اقوام و... را نداشته باشند.

 

 

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

 

 

مکیدن انگشت

 

 

روش دیگرى كه براى ترك مكیدن انگشت (شست) به كار مى رود آن است كه در طول روز ماده اى تلخ (البته بهداشتى ) به نوك انگشت كودك مى مالند تا كودك از به دهان گذاشتن انگشتش امتناع ورزد، و در طول شب نیز دستكش یا جورابى تمیز به دست هاى كودك مى كنند، تا مانع از این كار كودك شوند.

 

 

زمانى كه كودك سعى مى كند رفتار مكیدن انگشت خود را تغییر دهد، والدین و اطرافیان او باید از این تصمیم او استقبال كنند و با حمایت ها و تشویق هاى خود او را كمك و یارى نمایند. حمایت روانى براى كودك امنیت پدید مى آورد و باعث مى شود كه كودك در ناملایمات و سختى ها از خود مقاومت بیشترى نشان دهد. مثلاً والدین مى توانند با كودك بازى كنند، براى او كتاب بخوانند، با یكدیگر كاردستى بسازند و... . در این زمینه پدر و مادر مى توانند با ذوق و خلاقیت خود فرآیند ترك عادت را براى كودكشان هرچه آسان تر و راحت تر كنند. گروهى از والدین سعى مى كنند با تذكرهاى پى در پى خود این عادت را از سر كودك بیندازند. در حالى كه براى حذف عاداتى مثل مكیدن شست باید ابتدا علت اصلى این رفتار را پیدا كرد و آن گاه با از بین بردن آن درصدد بهبودى كودك برآمد. در موارد بسیارى، مكیدن انگشتان ناشى از نیاز كودك به آرامش و امنیت است. بدین منظور پدر و مادر و مربیان كودك مى توانند با استفاده از روش هاى زیر به كودك كمك نمایند تا بر این مشكل خود غلبه كند.

 

 

- هیچ گاه سعى نكنید براى ترك عادت كودك بر او فشار آورید، زیرا ممكن است موجب تقویت و تشدید عادت در او شود.

 

 

- به كودك كمك كنید تا روش هاى مقابله با تنش ها و فشارهاى روانى را یاد بگیرد، مثلاً با شما صحبت كند، به ورزش بپردازد، با دوستش صحبت كند و...

 

 

- سعى كنید دست هاى كودك را به نوعى مشغول نگه دارید. ( نقاشى بكشد، كاردستى بسازد، مجسمه هاى سفالى درست كند و....)

 

 

مکیدن انگشت

 

 

- شنیدن داستانى شیرین، ماجرایى افسانه اى و خاطره اى از دوران كودكى، موجب تسلى و آرامش خاطر كودك هنگام خواب مى شود.

 

 

- تماس بدنى (مثل نوازش كردن) موجب آرامش، امنیت و آسودگى كودك مى شود و او را از اضطراب و نگرانى رها مى سازد. سعى نكنید با مسخره كردن و شرمنده كردن كودك او را مجبور به ترك عادت كنید، زیرا این گونه رفتارها موجب خودكم بینى و احساس بى ارزشى در كودك مى شود.

 

 

- سعى كنید عواملى را كه موجب آزار روحى كودك مى شود، از بین ببرید.

 

 

- زمانى كه كودك انگشتش را مى مكد، با او بازى نكنید، او را بغل نگیرید و به او توجه نكنید. اما زمانى كه انگشتش را از دهانش درآورد، به او توجه كنید و او را نوازش كنید.

 

 

- انگشت مكیدن رفتارى ناخودآگاه است. پدر و مادر مى توانند با اشاره اى كوچك، كودك را نسبت به این حركت خود آگاه كنند.

 

 

- زمانى كه كودك انگشتش را مى مكد، او را جلوى آیینه ببرید.

 

 

- سعى كنید هیچ گاه دچار احساس ناكامى و شكست نشوید، زیرا این رویه را به فرزندتان نیز منتقل خواهید كرد.

 

 

- روش هاى آرام سازى عضلانى را با كودك تمرین كنید: تمرین هاى یوگا (تمرین هاى تخلیه هیجانى و شیوه درست نفس كشیدن)، تمرین آرام سازى، تنفس هاى عمیق و تمرین هاى رهاسازى عضلات