نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیویی برای نمایش وجود ندارد.
توضیحات دوره:
هوش مصنوعی این روزها همه جا است. این دوره به شما می آموزد که چگونه دو نوع هوش مصنوعی را با استفاده از C # ساده پیاده سازی کنید. شما از مفاهیم زیست شناسی برای ایجاد راه حل برای مشکلات پیچیده مانند انتخاب بهینه زیرمجموعه و ترتیب داده استفاده خواهید کرد. برخی از مشکلات را نمی توان با بی رحمی حل کرد. مشکلات ترکیبی که شامل یافتن یک ترتیب بهینه یا زیرمجموعه از داده ها است ، حل آنها بسیار دشوار است اگر تعداد موارد خیلی زیاد باشد زیرا زمان آزمایش هر یک از راه حل های ممکن است غالباً ممنوع باشد. در این دوره ، شما یاد می گیرید که چگونه کد هوش مصنوعی بنویسید که از مفاهیم زیست شناسی (مانند تکامل ، کراس اوور ژنتیکی و جهش) استفاده کند ، بنابراین نرم افزار می تواند راه حل های بهینه برای مشکلات پیچیده را توسعه دهد. این کد با C # کاملاً ساده نوشته خواهد شد و از هیچ کتابخانه خارجی استفاده نمی شود ، بنابراین همه جزئیات را درک خواهید کرد. ابتدا یاد خواهید گرفت که چگونه یک الگوریتم ژنتیک بنویسید ، این یک روش برای دستکاری داده ها است. شما در مورد روش های مختلف برای نشان دادن راه حل های بالقوه و همچنین تکنیک های تکامل راه حل ها در طی چندین نسل آشنا خواهید شد. انواع مختلف کراس اوور و جهش ، و همچنین فاکتورهای مختلف مربوط به ارزیابی تناسب هر راه حل کاندیدا ، که بر انتخاب نامزدها برای تولید مثل تأثیر دارد ، مورد بحث قرار می گیرند. پس از بررسی چگونگی استفاده از الگوریتم های ژنتیک برای یافتن راه حل های بهینه برای داده ها ، شما در مورد برنامه نویسی ژنتیک ، که از مفاهیم مشابهی استفاده می کند ، اما کد اجرایی واقعی را تکامل می بخشد ، به جای دستکاری ساده داده ها ، یاد خواهید گرفت. برنامه نویسی ژنتیک به ویژه برای یافتن عبارتی متناسب با مجموعه ای از داده های آموزش بسیار مناسب است. از نتایج این روش می توان برای پیش بینی ، برآورد و موارد مشابه استفاده کرد. سرانجام ، خواهید فهمید که چگونه می توان از برنامه نویسی ژنتیکی برای انجام بسیاری از کارهای پیچیده - به ویژه کنترل فرآیندها و تصمیم گیری ها - استفاده کرد. کدی که نتیجه می گیرد می تواند کاملاً پیچیده باشد و بسیاری از عوامل مختلف و محدودیت ها را متعادل کند. با پایان این دوره ، شما یک پایه محکم برای استفاده از این مفاهیم در برنامه های خود خواهید داشت.
سرفصل ها و درس ها
بررسی اجمالی دوره
Course Overview
-
بررسی اجمالی دوره
Course Overview
مقدمه ای بر الگوریتم های ژنتیک و برنامه نویسی ژنتیک
Introduction to Genetic Algorithms and Genetic Programming
-
بررسی اجمالی دوره
Course Overview
حل مشکلات بهینه سازی با الگوریتم های ژنتیک
Solving Optimization Problems with Genetic Algorithms
-
مفاهیم اساسی الگوریتم های ژنتیک
Genetic Algorithms Basic Concepts
-
موارد استفاده برای الگوریتم های ژنتیک
Uses for Genetic Algorithms
-
مسئله کوله پشتی
The Knapsack Problem
-
راه حلهای الگوریتم غیر ژنتیکی مسئله کوله پشتی
Non-genetic Algorithm Solutions to the Knapsack Problem
-
الگوریتم ژنتیک کلاس اصلی
Genetic Algorithm Main Class
-
نمایندگی یک راه حل
Representing a Solution
-
یک نکته سریع در مورد اعداد تصادفی
A Quick Aside About Random Numbers
-
تولید تصادفی نسل 0
Randomly Generating Generation 0
-
رسیدگی به راه حلهای نامزد نامعتبر
Handling Invalid Candidate Solutions
-
ارزیابی سازگاری
Fitness Evaluation
-
انتخاب چرخ رولت
Roulette Wheel Selection
-
کراس اوور
Crossover
-
جهش
Mutations
-
شرایط فسخ
Termination Conditions
-
نتایج در مقایسه با راه حل های سنتی
Results Compared to Traditional Solutions
-
مراحل بعدی
Next Steps
بهبود الگوریتم های ژنتیک با تنظیم کراس اوور ، جهش ، تناسب اندام و انتخاب
Improving Genetic Algorithms by Tuning Crossover, Mutation, Fitness, and Selection
-
مقدمه ای بر سفارش بهینه
Introduction to Optimal Ordering
-
مسئله فروشنده در سفر
The Traveling Salesman Problem
-
کلاسهای اساسی برای مسئله فروشنده در سفر
Basic Classes for the Traveling Salesman Problem
-
حلقه اصلی الگوریتم های ژنتیک
Genetic Algorithms Main Loop
-
رویکردهای عملکرد تناسب اندام
Fitness Function Approaches
-
کراس اور حساس به سفارش
Order-sensitive Crossover
-
جهش حساس به نظم
Order-sensitive Mutation
-
نتایج مربوط به مسئله فروشنده سفر
Results for the Traveling Salesman Problem
-
تنظیمات پارامتر
Parameter Adjustments
-
نخبه پرستی
Elitism
-
انتخاب مسابقات
Tournament Selection
-
مقیاس بندی تناسب اندام رتبه بندی شده
Ranked Fitness Scaling
-
جهش جابجایی
Displacement Mutation
-
نتایج نهایی آزمون
Final Test Results
-
منابع الگوریتم های ژنتیک
Resources for Genetic Algorithms
استخراج فرمولی از داده ها با برنامه نویسی ژنتیکی
Deriving a Formula from Data with Genetic Programming
-
استخراج فرمولی از داده ها با برنامه نویسی ژنتیکی
Deriving a Formula from Data with Genetic Programming
-
نمایندگی درخت برای عبارات
Tree Representation for Expressions
-
بسته
Closure
-
تلاقی درخت و جهش
Tree Crossover and Mutation
-
رگرسیون نمادین: یافتن یک معادله از داده ها
Symbolic Regression: Finding an Equation from Data
-
کد اصلی برای رگرسیون نمادین
Main Code for Symbolic Regressions
-
نوع پایه گره بیان
Expression Tree Node Base Type
-
گره های ترمینال درخت بیان
Expression Tree Terminal Nodes
-
گره های عملکرد درخت بیان
Expression Tree Function Nodes
-
ایجاد درختان بیان تصادفی
Creating Random Expression Trees
-
اجرای کراس اوور و جهش
Implementing Crossover and Mutation
-
مثال دیگر: پهلوگیری یک سفینه فضایی
Another Example: Docking a Spaceship
-
سفینه فضایی مجموعه اولیه
Spaceship Problem Primitive Set
-
سفینه فضایی عملکرد تناسب اندام
Spaceship Problem Fitness Function
-
نتایج آزمون با استفاده از برنامه آزمایشی
Test Results Using the Demo Program
-
مراحل بعدی
Next Steps
مفاهیم پیشرفته در برنامه نویسی ژنتیک
Advanced Concepts in Genetic Programming
-
تکنیک های پیشرفته در برنامه نویسی ژنتیک
Advanced Techniques in Genetic Programming
-
مشکلات بسته شدن
Problems with Closure
-
توابع ترمینال
Terminal Functions
-
مثال: انتخاب دست شروع پوکر
Example: Choosing a Starting Poker Hand
-
تعریف مجموعه اولیه
Defining the Primitive Set
-
ایجاد عملکرد تناسب اندام
Developing a Fitness Function
-
ارزیابی کیفیت راه حل
Evaluating the Solution Quality
-
کاهش نفخ درخت
Reducing Tree Bloat
-
توابع تعریف شده به صورت خودکار
Automatically Defined Functions
-
متغیرهای موقت و حلقه
Temporary Variables and Looping
-
بهینه سازی عملکرد
Performance Optimizations
-
منابعی برای برنامه نویسی ژنتیک
Resources for Genetic Programming
نمایش نظرات