Understanding Genetic Algorithms and Genetic Programming
Offered By: Pluralsight
Course Description
Overview
Artificial intelligence is everywhere these days. This course teaches you how to implement two types of AI using simple C#. You'll use concepts from biology to evolve solutions to complex problems like optimal subset selection and data ordering.
Certain problems can't be solved by brute force. Combinatorial problems that involve finding an optimal ordering or subset of data can be extremely challenging to solve if the number of items is too large since the time to test each possible solution can often be prohibitive. In this course, you'll learn how to write artificial intelligence code that uses concepts from biology (like evolution, genetic crossover, and mutation) so the software can evolve optimal solutions to complex problems. The code will be written in fairly simple C#, and no external libraries will be used, so you'll understand all of the details. First, you'll learn how to write a genetic algorithm, which is a technique to manipulate data. You'll learn about different ways to represent potential solutions, as well as techniques for evolving solutions over a number of generations. Different types of crossover and mutation will be discussed, as well as various factors related to evaluating each candidate solution's fitness, which influences which candidates are selected for reproduction. After looking at how genetic algorithms can be used to find optimal solutions for data, you'll learn about genetic programming, which uses similar concepts but evolves actual executable code, rather than simply manipulating data. Genetic programming is particularly well-suited to finding an expression that fits a set of training data. The results of this technique can be used for prediction, estimates, and the like. Finally, you'll discover how genetic programming can be used to perform many complex tasks - controlling processes and making decisions, in particular. The code that results can be quite complex, balancing many different competing factors and constraints. By the end of this course, you'll have a solid foundation to apply these concepts to your own programs.
Certain problems can't be solved by brute force. Combinatorial problems that involve finding an optimal ordering or subset of data can be extremely challenging to solve if the number of items is too large since the time to test each possible solution can often be prohibitive. In this course, you'll learn how to write artificial intelligence code that uses concepts from biology (like evolution, genetic crossover, and mutation) so the software can evolve optimal solutions to complex problems. The code will be written in fairly simple C#, and no external libraries will be used, so you'll understand all of the details. First, you'll learn how to write a genetic algorithm, which is a technique to manipulate data. You'll learn about different ways to represent potential solutions, as well as techniques for evolving solutions over a number of generations. Different types of crossover and mutation will be discussed, as well as various factors related to evaluating each candidate solution's fitness, which influences which candidates are selected for reproduction. After looking at how genetic algorithms can be used to find optimal solutions for data, you'll learn about genetic programming, which uses similar concepts but evolves actual executable code, rather than simply manipulating data. Genetic programming is particularly well-suited to finding an expression that fits a set of training data. The results of this technique can be used for prediction, estimates, and the like. Finally, you'll discover how genetic programming can be used to perform many complex tasks - controlling processes and making decisions, in particular. The code that results can be quite complex, balancing many different competing factors and constraints. By the end of this course, you'll have a solid foundation to apply these concepts to your own programs.
Syllabus
- Course Overview 1min
- Introduction to Genetic Algorithms and Genetic Programming 5mins
- Solving Optimization Problems with Genetic Algorithms 41mins
- Improving Genetic Algorithms by Tuning Crossover, Mutation, Fitness, and Selection 47mins
- Deriving a Formula from Data with Genetic Programming 55mins
- Advanced Concepts in Genetic Programming 43mins
Taught by
Greg Sommerville
Related Courses
بالتطبيق العملي C# تعلم أساسيات لغةCoursera Project Network via Coursera Amazon DynamoDB for Serverless Architectures (Traditional Chinese)
Amazon Web Services via AWS Skill Builder API Testing Using Rest Sharp (with C#) Test Automation Tool
Coursera Project Network via Coursera Basics of Scientific Visualization in Mathematical Modeling of Systems
National Research Nuclear University MEPhI via edX Build a Guessing Game in C# on Linux
Coursera Project Network via Coursera