payamvha/North_RAG huggingface dataset:
جمعیت جدیدی که از ترکیب و جهش در کروموزوم‌ها حاصل می‌شود، ترکیب می‌کنیم. مثلاً فرض کنید گونه خاصی از افراد، هوش بیشتری از بقیه افرادِ یک جامعه یا کولونی دارند. در شرایط کاملاً طبیعی، این افراد پیشرفت بهتری خواهند کرد و رفاه نسبتاً بالاتری خواهند داشت و این رفاه، خود باعث طول عمر بیشتر و باروری بهتر خواهد بود (توجه کنید شرایط، طبیعیست نه در یک جامعه سطح بالا با ملاحظات امروزی؛ یعنی طول عمر بیشتر در این جامعه نمونه با زاد و ولد بیشتر همراه است). حال اگر این خصوصیت (هوش) ارثی باشد بالطبع در نسل بعدی همان
خصوصیت (هوش) ارثی باشد بالطبع در نسل بعدی همان جامعه تعداد افراد باهوش به دلیل زاد و ولد بیشترِ این‌گونه افراد، بیشتر خواهد بود. اگر همین روند را ادامه دهید خواهید دید که در طی نسل‌های متوالی دائماً جامعه نمونه ما باهوش و باهوش‌تر می‌شود. بدین ترتیب یک مکانیزم ساده طبیعی توانسته‌است در طی چند نسل عملاً افراد کم هوش را از جامعه حذف کند علاوه بر اینکه میزان هوش متوسط جامعه نیز دائماً در حال افزایش است. بدین ترتیب می‌توان دید که طبیعت با بهره‌گیری از یک روش بسیار ساده (حذف تدریجی گونه‌های نامناسب و در عین حال
ساده (حذف تدریجی گونه‌های نامناسب و در عین حال تکثیر بالاتر گونه‌های بهینه)، توانسته‌است دائماً هر نسل را از لحاظ خصوصیات مختلف ارتقاء بخشد. البته آنچه در بالا ذکر شد به تنهایی توصیف‌کننده آنچه واقعاً در قالب تکامل در طبیعت اتفاق می‌افتد نیست. بهینه‌سازی و تکامل تدریجی به خودی خود نمی‌تواند طبیعت را در دسترسی به بهترین نمونه‌ها یاری دهد. اجازه دهید تا این مسئله را با یک مثال شرح دهیم: پس از اختراع اتومبیل به تدریج و در طی سال‌ها اتومبیل‌های بهتری با سرعت‌های بالاتر و قابلیت‌های بیشتر نسبت به نمونه‌های
بالاتر و قابلیت‌های بیشتر نسبت به نمونه‌های اولیه تولید شدند. طبیعیست که این نمونه‌های متأخر حاصل تلاش مهندسان طراح جهت بهینه‌سازی طراحی‌های قبلی بوده‌اند. اما دقت کنید که بهینه‌سازی یک اتومبیل، تنها یک «اتومبیل بهتر» را نتیجه می‌دهد. اما آیا می‌توان گفت اختراع هواپیما نتیجه همین تلاش بوده‌است؟ یا فرضاً می‌توان گفت فضاپیماها حاصل بهینه‌سازی طرح اولیه هواپیماها بوده‌اند؟ پاسخ اینست که گرچه اختراع هواپیما قطعاً تحت تأثیر دستاوردهای‌های صنعت اتومبیل بوده‌است؛ اما به هیچ وجه نمی‌توان گفت که هواپیما صرفاً حاصل
اما به هیچ وجه نمی‌توان گفت که هواپیما صرفاً حاصل بهینه‌سازی اتومبیل یا فضاپیما حاصل بهینه‌سازی هواپیماست. در طبیعت هم عیناً همین روند حکم‌فرماست. گونه‌های متکامل‌تری وجود دارند که نمی‌توان گفت صرفاً حاصل تکامل تدریجی گونه قبلی هستند. در این میان آنچه شاید بتواند تا حدودی ما را در فهم این مسئله یاری کند مفهومیست به نام تصادف یا جهش. به عبارتی طرح هواپیما نسبت به طرح اتومبیل یک جهش بود و نه یک حرکت تدریجی. در طبیعت نیز به همین گونه‌است. در هر نسل جدید بعضی از خصوصیات به صورتی کاملاً تصادفی تغییر می‌یابند
از خصوصیات به صورتی کاملاً تصادفی تغییر می‌یابند سپس بر اثر تکامل تدریجی که پیشتر توضیح دادیم در صورتی که این خصوصیت تصادفی شرایط طبیعت را ارضا کند حفظ می‌شود در غیر این‌صورت به شکل اتوماتیک از چرخه طبیعت حذف می‌گردد. در واقع می‌توان تکامل طبیعی را به این‌صورت خلاصه کرد: جستجوی کورکورانه (تصادف یا Blind Search) + بقای قوی‌تر. حال ببینیم که رابطه تکامل طبیعی با روش‌های هوش مصنوعی چیست. هدف اصلی روش‌های هوشمندِ به کار گرفته شده در هوش مصنوعی، یافتن پاسخ بهینه مسائل مهندسی است. به عنوان مثال اینکه چگونه یک
مسائل مهندسی است. به عنوان مثال اینکه چگونه یک موتور را طراحی کنیم تا بهترین بازدهی را داشته باشد یا چگونه بازوهای یک ربات را متحرک کنیم تا کوتاه‌ترین مسیر را تا مقصد طی کند (دقت کنید که در صورت وجود مانع یافتن کوتاه‌ترین مسیر دیگر به سادگی کشیدن یک خط راست بین مبدأ و مقصد نیست) همگی مسائل بهینه‌سازی هستند. روش‌های کلاسیک ریاضیات دارای دو اشکال اساسی هستند. اغلب این روش‌ها نقطه بهینه محلی (Local Optima) را به عنوان نقطه بهینه کلی در نظر می‌گیرند و نیز هر یک از این روش‌ها تنها برای مسئله خاصی کاربرد دارند.
از این روش‌ها تنها برای مسئله خاصی کاربرد دارند. این دو نکته را با مثال‌های ساده‌ای روشن می‌کنیم. به شکل زیر توجه کنید. این منحنی دارای دو نقطه ماکزیمم می‌باشد؛ که یکی از آن‌ها تنها ماکزیمم محلی است. حال اگر از روش‌های بهینه‌سازی ریاضی استفاده کنیم مجبوریم تا در یک بازه بسیار کوچک مقدار ماکزیمم تابع را بیابیم؛ مثلاً از نقطه ۱ شروع کنیم و تابع را ماکزیمم کنیم. بدیهی است اگر از نقطه ۱ شروع کنیم تنها به مقدار ماکزیمم محلی دست خواهیم یافت و الگوریتم ما پس از آن متوقف خواهد شد. اما در روش‌های هوشمند، به ویژه
آن متوقف خواهد شد. اما در روش‌های هوشمند، به ویژه الگوریتم ژنتیک به دلیل خصلت تصادفی آن‌ها حتی اگر هم از نقطه ۱ شروع کنیم باز ممکن است در میان راه نقطه A به صورت تصادفی انتخاب شود که در این صورت ما شانس دست‌یابی به نقطه بهینه کلی (Global Optima) را خواهیم داشت. در مورد نکته دوم باید بگوییم که روش‌های ریاضی بهینه‌سازی اغلب منجر به یک فرمول یا دستورالعمل خاص برای حل هر مسئله می‌شوند. در حالی که روش‌های هوشمند دستورالعمل‌هایی هستند که به صورت کلی می‌توانند در حل هر مسئله‌ای به کار گرفته شوند. این نکته را پس
حل هر مسئله‌ای به کار گرفته شوند. این نکته را پس از آشنایی با خود الگوریتم بیشتر و بهتر خواهید دید. نحوه عملکرد الگوریتم ژنتیک روش کار الگوریتم ژنتیک به‌طور فریبنده‌ای ساده، قابل درک و به‌طور قابل ملاحظه‌ای روشی است که ما معتقدیم حیوانات آنگونه تکامل یافته‌اند. هر فرمولی که از طرح داده شده بالا تبعیت کند فردی از جمعیت فرمول‌های ممکن تلقی می‌شود. الگوریتم ژنتیک در انسان متغیرهایی که هر فرمول داده‌شده را مشخص می‌کنند به عنوان یکسری از اعداد نشان داده‌شده‌اند که معادل DNA آن فرد را تشکیل می‌دهند. موتور
که معادل DNA آن فرد را تشکیل می‌دهند. موتور الگوریتم ژنتیک یک جمعیت اولیه این‌گونه است که هر فرد در برابر مجموعه‌ای از داده‌ها مورد آزمایش قرار می‌گیرد و مناسبترین آن‌ها باقی می‌مانند؛ بقیه کنار گذاشته می‌شوند. مناسبترین افراد با هم جفتگیری (جابجایی عناصر DNA) و (تغییر تصادفی عناصر DNA) کرده و مشاهده می‌شود که با گذشت از میان تعداد زیادی از نسل‌ها، الگوریتم ژنتیک به سمت ایجاد فرمول‌هایی که دقیقتر هستند، میل می‌کنند. در فرمول نهایی برای کاربر انسانی قابل مشاهده خواهد بوده و برای ارائه سطح اطمینان نتایج
مشاهده خواهد بوده و برای ارائه سطح اطمینان نتایج می‌توان تکنیک‌های آماری متعارف را بر روی این فرمول‌ها اعمال کرد که در نتیجه جمعیت را کلاً قویتر می‌سازند. الگوریتم ژنتیک درمدل سازی مختصراً گفته می‌شود که الگوریتم ژنتیک یک تکنیک برنامه‌نویسی است که از تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده می‌کند. مسئله‌ای که باید حل شود دارای ورودی‌هایی می‌باشد که طی یک فرایند الگو برداری شده از تکامل ژنتیکی به راه حل‌ها تبدیل سپس راه حل‌ها به عنوان کاندید توسط تابع ارزیاب (fitness function) مورد ارزیابی قرار
تابع ارزیاب (fitness function) مورد ارزیابی قرار گرفته و چنانچه شرط خروج مسئله فراهم باشد الگوریتم خاتمه می‌یابد. در هر نسل، مناسبترین‌ها انتخاب می‌شوند نه بهترین‌ها. یک راه‌حل برای مسئله مورد نظر، با یک لیست از پارامترها نشان داده می‌شود که به آن‌ها کروموزوم یا ژنوم می‌گویند. کروموزوم‌ها عموماً به صورت یک رشته ساده از داده‌ها نمایش داده می‌شوند، البته انواع ساختمان داده‌های دیگر هم می‌توانند مورد استفاده قرار گیرند. در ابتدا چندین مشخصه به صورت تصادفی برای ایجاد نسل اول تولید می‌شوند. در طول هر نسل، هر
ایجاد نسل اول تولید می‌شوند. در طول هر نسل، هر مشخصه ارزیابی می‌شود و ارزش تناسب (fitness) توسط تابع تناسب اندازه‌گیری می‌شود. گام بعدی ایجاد دومین نسل از جامعه است که بر پایه فرایندهای انتخاب، تولید از روی مشخصه‌های انتخاب شده با عملگرهای ژنتیکی است: اتصال کروموزوم‌ها به سر یکدیگر و تغییر. برای هر فرد، یک جفت والد انتخاب می‌شود. انتخاب‌ها به گونه‌ای‌اند که مناسبترین عناصر انتخاب شوند تا حتی ضعیفترین عناصر هم شانس انتخاب داشته باشند تا از نزدیک شدن به جواب محلی جلوگیری شود. چندین الگوی انتخاب وجود دارد:
محلی جلوگیری شود. چندین الگوی انتخاب وجود دارد: چرخ منگنه‌دار (رولت)، انتخاب مسابقه‌ای (Tournament) ،... . معمولاً الگوریتم‌های ژنتیک یک عدد احتمال اتصال دارد که بین ۰٫۶ و ۱ است که احتمال به وجود آمدن فرزند را نشان می‌دهد. ارگانیسم‌ها با این احتمال دوباره با هم ترکیب می‌شوند. اتصال ۲ کروموزوم فرزند ایجاد می‌کند، که به نسل بعدی اضافه می‌شوند. این کارها انجام می‌شوند تا این که کاندیدهای مناسبی برای جواب، در نسل بعدی پیدا شوند. مرحله بعدی تغییر دادن فرزندان جدید است. الگوریتم‌های ژنتیک یک احتمال تغییر کوچک و
است. الگوریتم‌های ژنتیک یک احتمال تغییر کوچک و ثابت دارند که معمولاً درجه‌ای در حدود ۰٫۰۱ یا کمتر دارد. بر اساس این احتمال، کروموزوم‌های فرزند به‌طور تصادفی تغییر می‌کنند یا جهش می‌یابند، مخصوصاً با جهش بیت‌ها در کروموزوم ساختمان داده‌مان. این فرایند باعث به وجود آمدن نسل جدیدی از کروموزوم‌هایی می‌شود، که با نسل قبلی متفاوت است. کل فرایند برای نسل بعدی هم تکرار می‌شود، جفت‌ها برای ترکیب انتخاب می‌شوند، جمعیت نسل سوم به وجود می‌آیند و … این فرایند تکرار می‌شود تا این که به آخرین مرحله برسیم. شرایط خاتمه
تا این که به آخرین مرحله برسیم. شرایط خاتمه الگوریتم‌های ژنتیک عبارتند از: روش‌های نمایش. قبل از این که یک الگوریتم ژنتیک برای یک مسئله اجرا شود، یک روش برای کد کردن ژنوم‌ها به زبان کامپیوتر باید به کار رود. یکی از روش‌های معمول کد کردن به صورت رشته‌های باینری است: رشته‌های ۰ و ۱. یک راه حل مشابه دیگر کد کردن راه حل‌ها در آرایه‌ای از اعداد صحیح یا اعداد اعشاری است. سومین روش برای نمایش صفات در یک GA یک رشته از حروف است، که هر حرف دوباره نمایش دهنده یک خصوصیت از راه حل است. خاصیت هر سه روش این است که آن‌ها
از راه حل است. خاصیت هر سه روش این است که آن‌ها تعریف سازنده‌ای را که تغییرات تصادفی در آن‌ها ایجاد می‌کنند را آسان می‌کنند: ۰ را به ۱ و برعکس، اضافه یا کم کردن ارزش یک عدد یا تبدیل یک به صفر یا برعکس. یک روش دیگر که توسط John Koza توسعه یافت، برنامه‌نویسی ژنتیک است؛ که برنامه‌ها را به عنوان شاخه‌های داده در ساختار درخت نشان می‌دهد. در این روش تغییرات تصادفی می‌توانند با عوض کردن عملگرها یا تغییر دادن ارزش یک گره داده شده در درخت، یا عوض کردن یک زیر درخت با دیگری به وجود آیند. عملگرهای یک الگوریتم ژنتیک.
دیگری به وجود آیند. عملگرهای یک الگوریتم ژنتیک. در هر مسئله قبل از آنکه بتوان الگوریتم ژنتیک را برای یافتن یک پاسخ به کار برد به دو عنصر نیاز است:در ابتدا روشی برای ارائه یک جواب به شکلی که الگوریتم ژنتیک بتواند روی آن عمل کند لازم است. در دومین جزء اساسی الگوریتم ژنتیک روشی است که بتواند کیفیت هر جواب پیشنهاد شده را با استفاده از توابع تناسب محاسبه نماید. شبه کد. 1 Genetic Algorithm 2 begin 3 Choose initial population 4 repeat 5 Evaluate the individual fitness of a certain proportion of the population 6
of a certain proportion of the population 6 Select pairs of best-ranking individuals to reproduce 7 Apply crossover operator 8 Apply mutation operator 9 until terminating condition 10 end ایده اصلی. در دهه هفتاد میلادی دانشمندی از دانشگاه میشیگان به نام جان هلند ایده استفاده از الگوریتم ژنتیک را در بهینه‌سازی‌های مهندسی مطرح کرد. ایده اساسی این الگوریتم انتقال خصوصیات موروثی توسط ژن‌هاست. فرض کنید مجموعه خصوصیات انسان توسط کروموزوم‌های او به نسل بعدی منتقل می‌شوند. هر ژن در این کروموزوم‌ها نماینده یک
می‌شوند. هر ژن در این کروموزوم‌ها نماینده یک خصوصیت است. به عنوان مثال ژن ۱ می‌تواند رنگ چشم باشد، ژن ۲ طول قد، ژن ۳ رنگ مو و الی آخر. حال اگر این کروموزوم به تمامی، به نسل بعد انتقال یابد، تمامی خصوصیات نسل بعدی شبیه به خصوصیات نسل قبل خواهد بود. بدیهیست که در عمل چنین اتفاقی رخ نمی‌دهد. در واقع به صورت هم‌زمان دو اتفاق برای کروموزوم‌ها می‌افتد. اتفاق اول جهش () است. «جهش» به این صورت است که بعضی ژن‌ها به صورت کاملاً تصادفی تغییر می‌کنند. البته تعداد این‌گونه ژن‌ها بسیار کم می‌باشد اما در هر حال این تغییر
ژن‌ها بسیار کم می‌باشد اما در هر حال این تغییر تصادفی همانگونه که پیشتر دیدیم بسیار مهم است؛ مثلاً ژن رنگ چشم می‌تواند به صورت تصادفی باعث شود تا در نسل بعدی یک نفر دارای چشمان سبز باشد. در حالی که تمامی نسل قبل دارای چشم قهوه‌ای بوده‌اند. علاوه بر «جهش» اتفاق دیگری که می‌افتد و البته این اتفاق به تعداد بسیار بیشتری نسبت به «جهش» رخ می‌دهد چسبیدن دو کروموزوم از طول به یکدیگر و تبادل برخی قطعات بین دو کروموزوم است. این مسئله با نام شناخته می‌شود. این همان چیزیست که باعث می‌شود تا فرزندان ترکیب ژن‌های
چیزیست که باعث می‌شود تا فرزندان ترکیب ژن‌های متفاوتی را (نسبت به والدین خود) به فرزندان خود انتقال دهند. روش‌های انتخاب. روش‌های مختلفی برای الگوریتم‌های ژنتیک وجود دارند که می‌توان برای انتخاب ژنوم‌ها از آن‌ها استفاده کرد. اما روش‌های لیست شده در پایین از معمول‌ترین روش‌ها هستند. انتخاب Elitist. مناسب‌ترین عضو هر اجتماع انتخاب می‌شود. انتخاب Roulette. یک روش انتخاب است که در آن عنصری که عدد برازش (تناسب) بیشتری داشته باشد، انتخاب می‌شود. در واقع به نسبت عدد برازش برای هر عنصر یک احتمال تجمعی نسبت می‌دهیم
برازش برای هر عنصر یک احتمال تجمعی نسبت می‌دهیم و با این احتمال است که شانس انتخاب هر عنصر تعیین می‌شود. انتخاب Scaling. به موازات افزایش متوسط عدد برازش جامعه، سنگینی انتخاب هم بیشتر می‌شود و جزئی‌تر. این روش وقتی کاربرد دارد که مجموعه دارای عناصری باشد که عدد برازش بزرگی دارند و فقط تفاوت‌های کوچکی آن‌ها را از هم تفکیک می‌کند. انتخاب Tournament. یک زیر مجموعه از صفات یک جامعه انتخاب می‌شوند و اعضای آن مجموعه با هم رقابت می‌کنند و سرانجام فقط یک صفت از هر زیرگروه برای تولید انتخاب می‌شوند. بعضی از روش‌های
برای تولید انتخاب می‌شوند. بعضی از روش‌های دیگر عبارتند از: مثال عملی. در این مثال می‌خواهیم مسئلهٔ ۸ وزیر را بوسیلهٔ این الگوریتم حل کنیم. هدف مشخص کردن چیدمانی از ۸ وزیر در صفحهٔ شطرنج است به نحوی که هیچ‌یک همدیگر را تهدید نکند. ابتدا باید نسل اولیه را تولید کنیم. صفحه شطرنج ۸ در ۸ را در نظر بگیرید. ستون‌ها را با اعداد ۰ تا ۷ و سطرها را هم از ۰ تا ۷ مشخص می‌کنیم. برای تولید حالات (کروموزومها) اولیه به صورت تصادفی وزیرها را در ستون‌های مختلف قرار می‌دهیم. باید در نظر داشت که وجود نسل اولیه با شرایط بهتر
باید در نظر داشت که وجود نسل اولیه با شرایط بهتر سرعت رسیدن به جواب را افزایش می‌دهد (اصالت نژاد) به همین خاطر وزیر i ام را در خانهٔ تصادفی در ستون i ام قرار می‌دهیم (به جای اینکه هر مهره‌ای بتواند در هر خانه خالی قرار بگیرد). با اینکار حداقل از برخورد ستونی وزیرها جلوگیری می‌شود. توضیح بیشتر اینکه مثلاً وزیر اول را به‌طور تصادفی در خانه‌های ستون اول که با ۰ مشخص شده قرار می‌دهیم تا به آخر. i=۰٬۱، … ۷ حال باید این حالت را به نحوی کمی مدل کرد. چون در هر ستون یک وزیر قرار دادیم هر حالت را بوسیلهٔ رشته اعدادی
یک وزیر قرار دادیم هر حالت را بوسیلهٔ رشته اعدادی که عدد k ام در این رشته شمارهٔ سطر وزیر موجود در ستون i ام را نشان می‌دهد؛ یعنی یک حالت که انتخاب کردیم می‌تواند به صورت زیر باشد: ۶۷۲۰۳۴۲۲ که ۶ شمارهٔ سطر ۶ است که وزیر اول که شمارهٔ ستونش ۰ است می‌باشد تا آخر. فرض کنید ۴ حالت زیر به تصادف تولید شده‌اند. این چهار حالت را به عنوان کروموزوم‌های اولیه بکار می‌گیریم. حال نوبت به تابع برازش fitness function می‌رسد. تابعی را که در نظر می‌گیریم تابعی است که برای هر حالت تعداد برخوردها (تهدیدها) را در نظر می‌گیرد.
حالت تعداد برخوردها (تهدیدها) را در نظر می‌گیرد. هدف صفر کردن یا حداقل کردن این تابع است. پس احتمال انتخاب کروموزومی برای تولید نسل بیشتر است که مقدار محاسبه شده توسط تابع برازش برای آن کمتر باشد. (روش‌های دیگری نیز برای انتخاب وجود دارد) مقدار برازش برای حالات اولیه به صورت زیر می‌باشد: پس احتمال‌ها به صورت زیر است: formula_1 در اینجا کروموزومهایی را انتخاب می‌کنیم که برازندگی کمتری دارند. پس کروموزوم ۳ برای crossover با کروموزوم‌های ۴ و ۱ انتخاب می‌شود. نقطهٔ ترکیب را بین ارقام ۶ و ۷ در نظر می‌گیریم. ۴ و
ترکیب را بین ارقام ۶ و ۷ در نظر می‌گیریم. ۴ و ۳: ۱ و ۳: حال نوبت به جهش می‌رسد. در جهش باید یکی از ژن‌ها تغییر کند. فرض کنید از بین کروموزوم‌های ۵ تا ۸ کروموزوم شمارهٔ ۷ و از بین ژن چهارم از ۲ به ۳ جهش یابد. پس نسل ما شامل کروموزوم‌های زیر با امتیازات نشان داده شده می‌باشد: کروموزوم ۳ کاندیدای خوبی برای ترکیب با ۶ و ۷ می‌باشد. (فرض در این مرحله جهشی صورت نگیرد و نقطهٔ اتصال بین ژن‌های ۱ و ۲ باشد) کروموزوم‌های از ۹ تا ۱۲ را نسل جدید می‌گوییم. به‌طور مشخص کروموزوم‌های تولید شده در نسل جدید به جواب مسئله
کروموزوم‌های تولید شده در نسل جدید به جواب مسئله نزدیکتر شده‌اند. با ادامهٔ همین روند پس از چند مرحله به جواب مورد نظر خواهیم رسید. روش جستجوی تکاملی. روش‌های جستجوی ناآگاهانه، آگاهانه و فراابتکاری (به انگلیسی: Metaheuristic) برای حل مسائل هوش مصنوعی بسیار کارآمد می‌باشند. در مورد مسائل بهینه‌سازی اغلب روش‌های آگاهانه و ناآگاهانه جوابگوی نیاز نخواهند بود چرا که بیشتر مسائل بهینه‌سازی در رده مسائل NP قرار دارند؛ بنابراین نیاز به روش جستجوی دیگری وجود دارد که بتواند در فضای حالت مسائل NP به طرف جواب بهینه
که بتواند در فضای حالت مسائل NP به طرف جواب بهینه سراسری حرکت کند. بدین منظور روش‌های جستجوی فراابتکاری مطرح می‌شوند، این روش‌های جستجو می‌توانند به سمت بهینگی‌های سراسری مسئله حرکت کنند. در کنار روش‌های جستجوی فراابتکاری، روش‌های جستجوی دیگری نیز وجود دارند که به روش‌های تکاملی معروفند. نظریه تکامل. بر اساس نظریه تکامل داروین نسل‌هایی که از ویژگی‌های و خصوصیات برتری نسبت به نسل‌های دیگر برخوردارند شانس بیشتری نیز برای بقا و تکثیر خواهند داشت و ویژگی‌ها و خصوصیات برتر آن‌ها به نسل‌های بعدی آنان نیز منتقل
خصوصیات برتر آن‌ها به نسل‌های بعدی آنان نیز منتقل خواهد شد. همچنین بخش دوم نظریه داروین بیان می‌کند که هنگام تکثیر یک ارگان فرزند، به تصادف رویدادهایی اتفاق می‌افتد که موجب تغییر خصوصیات ارگان فرزند می‌شود و در صورتی که این تغییر فایده‌ای برای ارگان فرزند داشته باشد موجب افزایش احتمال بقای آن ارگان فرزند خواهد شد. در محاسبات کامپیوتری، بر اساس این نظریه داروین روش‌هایی برای مسائل بهینه‌سازی مطرح شدند که همه این روش‌ها از پردازش تکاملی در طبیعت نشات گرفته‌اند. به روش‌های جستجو، الگوریتم‌های جستجوی تکاملی
به روش‌های جستجو، الگوریتم‌های جستجوی تکاملی گفته می‌شود. انواع مختلف الگوریتم‌های تکاملی. انواع مختلف الگوریتم‌های تکاملی که تا به حال مطرح شده‌اند، به شرح زیر می‌باشد: الگوریتم ژنتیک الگوریتم تکاملی Evolutionary Strategies Evolutionary Programming Differential Evolution Cultural Evolution هم‌فرگشتی کدگذاری و نحوه نمایش. نحوه نمایش جواب مسئله و ژن‌ها در موفقیت الگوریتم و نحوه پیاده‌سازی الگوریتم ژنتیک تأثیر بسیار مهمی دارد. در بیشتر مسائل نیز روش‌های مختلفی برای نشان دادن جواب مسئله می‌توان طراحی کرد. حل
برای نشان دادن جواب مسئله می‌توان طراحی کرد. حل مسائل معروف با استفاده از الگوریتم ژنتیک. یکی از مسائل کلاسیک در الگوریتم‌های ژنتیک مسئله ۸ وزیر است. ماهیت مسئله به گونه‌ای است که مدلسازی آن و همچنین اعمال عملگرهای الگوریتم ژنتیک بر روی آن بسیار ساده است. همچنین علاوه برای الگوریتم ژنتیک، روش الگوریتم تبرید شبیه‌سازی شده نیز در ساده‌ترین شکل خود برای مسئله چند وزیر نیز روش مناسبی هست همچنین از مسائل مهم دیگری که با استفاده از این الگوریتم قابل حل می‌باشد مسئلهٔ فروشندهٔ دوره‌گرد یا مسئلهٔ چیدمان دینامیک
مسئلهٔ فروشندهٔ دوره‌گرد یا مسئلهٔ چیدمان دینامیک می‌باشد.
نیم‌کرهٔ شمالی نیمی از سطح هر سیاره است که از استوای سیاره در طرف شمال قرار دارد. قطب شمال زمین در این نیمکره قرار دارد. سطح نیم‌کرهٔ شمالی زمین شامل ۶۰٫۷٪ آب و ۳۹٫۳٪ خشکی است. ۹۰٪ جمعیت کرهٔ زمین در نیم‌کرهٔ شمالی آن زندگی می‌کنند. بیشتر خشکی‌های کره زمین در نیم‌کره شمالی قرار دارند. همهٔ پهنه یا بخشی از پهنهٔ بیشتر قاره‌ها به استثناء جنوبگان در نیمکرهٔ شمالی جای گرفته‌اند. تمام آمریکای شمالی، اروپا، بیشتر آسیا، حدود دوسوم آفریقا و حدود ۱۰ درصد از آمریکای جنوبی در نیم‌کره شمالی واقع شده‌اند. سه کشور
جنوبی در نیم‌کره شمالی واقع شده‌اند. سه کشور پرجمعیت جهان، یعنی چین، هند و ایالات متحده نیز در این نیم‌کره قرار دارند. بخشی از آفریقا و آمریکای جنوبی و کل اقیانوسیه (به جز کیربیاتی) در نیمکرهٔ جنوبی قرار گرفته‌است و جزایر اندونزی تنها قسمتی از قارهٔ آسیاست که در جنوب استوا واقع شده‌است. نیم‌کره شمالی انواع اقلیم‌ها را در خود جای داده است؛ از مناطق سرد و یخی دایره شمالگان گرفته تا نواحی گرمسیری نزدیک به استوا. بیشتر شهرها و کشورهای پرجمعیت جهان نیز در این نیم‌کره واقع‌اند، و این باعث تنوع فرهنگی، زبانی و
نیم‌کره واقع‌اند، و این باعث تنوع فرهنگی، زبانی و سنتی گسترده‌ای شده است. این نیم‌کره چهار فصل سال را تجربه می‌کند: بهار، تابستان، پاییز و زمستان. فصل‌ها در نیم‌کره شمالی با نیم‌کره جنوبی مخالف‌اند. مثلاً وقتی در ایالات متحده یا اروپا تابستان است، در استرالیا یا آرژانتین زمستان است. بلندترین روز سال حدود ۲۱ ژوئن (انقلاب تابستانی) و کوتاه‌ترین روز سال حدود ۲۱ دسامبر (انقلاب زمستانی) است. در اعتدال‌های بهاری و پاییزی (حدود ۲۰ مارس و ۲۲ سپتامبر)، طول شب و روز تقریباً برابر است. بیشتر رشته‌کوه‌های بزرگ جهان،
تقریباً برابر است. بیشتر رشته‌کوه‌های بزرگ جهان، مانند هیمالیا و راکی، در نیم‌کره شمالی قرار دارند. اقیانوس منجمد شمالی که بیشتر سطح آن با یخ پوشیده شده، به‌طور کامل در نیم‌کره شمالی قرار دارد. در دوران‌های یخبندان گذشته، یخچال‌های عظیمی بخش‌های بزرگی از نیم‌کره شمالی، به‌ویژه آمریکای شمالی و اروپا را پوشانده بودند. زمان و دما. از آغاز بهار تا آغاز تابستان چون میل خورشید زیاد می‌شود، دایرهٔ روشنایی دیگر مدارها را نصف نمی‌کند و در تمام نقاط نیمکرهٔ شمالی قوس روز از قوس شب بیشتر است. در فصل بهار در نیمکرهٔ
روز از قوس شب بیشتر است. در فصل بهار در نیمکرهٔ شمالی روزها بلند می‌شود و شب‌ها کوتاه می‌گردد و در نیمکرهٔ جنوبی وضع بر عکس است. هرچه نقطه‌ای از استوا دورتر باشد اختلاف شب و روز آن بیشتر است. در استوا قوس شب و روز برابر است. در قطب شمال روز و در نیمکرهٔ جنوبی شب است. در فصل تابستان وضع مانند بهار است اما در جهت وارونه. میل خورشید کم می‌شود و در نیمکرهٔ شمالی روزها به‌تدریج کوتاه و شب‌ها بلند می‌شود و در نیمکرهٔ جنوبی بر عکس شب‌ها رفته‌رفته کوتاه و روزها بلند می‌شود. در قطب شمال همواره روز است و در قطب جنوب
می‌شود. در قطب شمال همواره روز است و در قطب جنوب همواره شب و در استوا وضع به یک منوال می‌باشد. دمای هر مکان با عرض جغرافیایی آن مکان بستگی دارد یعنی هر اندازه از استوا دورتر شویم گرما کم‌تر خواهد شد. افزون‌بر این بلندی و کوتاهی روزها در این مسئله دخالت کامل دارد چنان‌که در اوایل تیر با این‌که آفتاب نسبت به نیمکرهٔ شمالی تقریباً عمودی‌تر می‌تابد، با این وجود در اوایل مرداد هوا گرم‌تر است. چرا که در این مدت همواره روزها بلندتر از شب‌هاست و گرمای روزها متراکم می‌شود. جغرافیا و اقلیم. بادهای بسامان بلافاصله
می‌شود. جغرافیا و اقلیم. بادهای بسامان بلافاصله بالای استوا از شرق به غرب می‌وزند. این بادها آب‌های سطحی را با خود می‌کشند و جریان‌هایی را ایجاد می‌کنند که به‌سبب اثر کوریولیس به‌سمت غرب روان می‌شوند. سپس این جریان‌ها به سمت راست منحرف شده و به‌سوی شمال می‌روند. در حدود عرض جغرافیایی ۳۰ درجهٔ شمالی، مجموعه‌ای دیگر از بادها به نام بادهای غربی، جریان‌ها را دوباره به‌سمت شرق می‌رانند و بدین ترتیب یک حلقهٔ بستهٔ ساعت‌گرد شکل می‌گیرد. ۶۰٫۷٪ از سطح آن را آب تشکیل می‌دهد، در حالی‌که این مقدار در نیم‌کره جنوبی
می‌دهد، در حالی‌که این مقدار در نیم‌کره جنوبی ۸۰٫۹٪ است؛ همچنین این نیم‌کره دارای ۶۷٫۳٪ از خشکی‌های زمین است. قاره‌های آمریکای شمالی و بخش اصلی اوراسیا به‌طور کامل در نیم‌کره شمالی قرار دارند، به‌همراه حدود دوسوم آفریقا و بخشی کوچک از آمریکای جنوبی. در طی ۲٫۵ میلیون سال گذشته از عصر پلیستوسن، فازهای سرمایشی متعددی به‌نام دوره یخبندان (عصر یخبندان کواترنری) در اروپا و آمریکای شمالی رخ داد که در فواصل تقریباً ۴۰٬۰۰۰ تا ۱۰۰٬۰۰۰ سال روی می‌داد. این دوره‌های یخبندان بلندمدت با دوره‌های گرم‌تر و کوتاه‌تر
یخبندان بلندمدت با دوره‌های گرم‌تر و کوتاه‌تر میان‌یخبندان به‌مدت حدود ۱۰٬۰۰۰ تا ۱۵٬۰۰۰ سال از هم جدا می‌شدند. آخرین اپیزود سرد از آخرین دوره یخبندان حدود ۱۰٬۰۰۰ سال پیش پایان یافت. زمین هم‌اکنون در یک دورهٔ میان‌یخبندان از کواترنری قرار دارد که هولوسن نامیده می‌شود. یخچال‌های طبیعی که در طی این دوره‌ها شکل گرفتند، بسیاری از نواحی نیم‌کره شمالی را پوشاندند. منطقه شمالگان پیرامون قطب شمال (۹۰ درجه عرض جغرافیایی) قرار دارد و اقلیم آن با زمستان‌های سرد و تابستان‌های خنک شناخته می‌شود. بارش عمدتاً به‌شکل برف
خنک شناخته می‌شود. بارش عمدتاً به‌شکل برف است. نواحی واقع در دایره شمالگان (عرض جغرافیایی ۶۶°۳۴′) در تابستان روزهایی دارند که خورشید هرگز غروب نمی‌کند، و در زمستان روزهایی که خورشید هرگز طلوع نمی‌کند. مدت این پدیده‌ها از یک روز در لبهٔ دایره شمالگان تا چند ماه در نزدیکی قطب متفاوت است. میان دایره شمالگان و مدار رأس‌السرطان (۲۳°۲۶′ عرض جغرافیایی)، منطقه معتدل شمالی قرار دارد. تغییرات فصلی در این منطقه‌ها معمولاً ملایم‌اند، اما اقلیم معتدل می‌تواند آب‌وهوای بسیار ناپایداری داشته باشد. مناطق گرمسیری (بین مدار
ناپایداری داشته باشد. مناطق گرمسیری (بین مدار رأس‌السرطان و استوا) معمولاً در تمام طول سال گرم‌اند و در ماه‌های تابستان فصل بارانی و در زمستان فصل خشک را تجربه می‌کنند. در نیم‌کره شمالی، اجسامی که در سطح یا بالای سطح زمین حرکت می‌کنند، به‌دلیل اثر کوریولیس گرایش دارند که به‌سمت راست منحرف شوند. در نتیجه، جریان‌های افقی بزرگ‌مقیاس هوا یا آب، تمایل دارند به‌صورت گردش ساعت‌گرد درآیند. این جریان‌ها در الگوهای چرخش اقیانوسی اقیانوس اطلس شمالی و اقیانوس آرام شمالی به‌خوبی مشاهده می‌شوند. در همین نیم‌کره،
شمالی به‌خوبی مشاهده می‌شوند. در همین نیم‌کره، جریان‌های اقیانوسی می‌توانند الگوهای آب‌وهوایی را تغییر دهند که عوامل گوناگونی را در سواحل شمالی تحت تأثیر قرار می‌دهند. همچنین، حرکت هوا به‌سمت پایین و سطح زمین در نیم‌کره شمالی تمایل دارد به‌صورت ساعت‌گرد پخش شود؛ ازاین‌رو، گردش ساعت‌گرد هوا از ویژگی‌های سامانه پرفشار در این نیم‌کره است. برعکس، زمانی که هوا از سطح زمین بالا می‌رود و یک سامانه کم‌فشار ایجاد می‌کند، هوا به‌صورت پادساعت‌گرد به‌سوی آن جذب می‌شود. توفندها و توفان‌های حاره‌ای (سامانه‌های کم‌فشار
توفندها و توفان‌های حاره‌ای (سامانه‌های کم‌فشار عظیم) نیز در نیم‌کره شمالی به‌صورت پادساعت‌گرد می‌چرخند. سایهٔ یک ساعت آفتابی در عرض‌های شمالی از نقطه زیرخورشیدی به‌سمت ساعت‌گرد حرکت می‌کند، و در عرض‌های جنوبی پادساعت‌گرد. در این عرض‌ها، خورشید در طی روز در موقعیتی جنوبی‌تر به اوج می‌رسد. میان مدار رأس‌السرطان و استوا، خورشید در هنگام ظهر می‌تواند در شمال، بالای سر یا جنوب دیده شود که به زمان سال بستگی دارد. در نیم‌کره جنوبی، خورشید در ظهر معمولاً در شمال قرار دارد. ماه زمانی‌که از نیم‌کره شمالی مشاهده