Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA CompTIA Security+ Amazon AWS AWS Certified Developer - Associate
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Mindfulness Meditation Personal Transformation Life Purpose Emotional Intelligence Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Google Analytics
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Analysis Data Modeling Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Freelancing Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee
IT & Software Other IT & Software Machine Learning

C++ Machine Learning Algorithms Inspired by Nature

Study the Genetic Algorithm, Simulated Annealing, Ant Colony Optimization, Differential Evolution by Coding from Scratch
Rating: 3.4 out of 53.4 (27 ratings)
5,833 students
Created by Serban Stoenescu
Last updated 11/2020
English
English [Auto]
30-Day Money-Back Guarantee

What you'll learn

  • Genetic Algorithm in C++
  • Simulated Annealing
  • Differential Evolution
  • Ant Colony Optimization

Requirements

  • Understand basic C++ and you should have a C++ IDE (any, I am using Visual Studio)
  • An understanding of some mathematics
  • An understanding of general algorithmics
  • An interest in cool algorithms :)

Description

This online course is for students and software developers who want to level up their skills by learning interesting optimization algorithms in C++.

You will learn some of the most famous AI algorithms by writing it in C++ from scratch, so we will not use any libraries. We will start with the Genetic Algorithm (GA), continue with Simulated Annealing (SA) and then touch on a less known one: Differential Evolution. Finally, we will look at Ant Colony Optimization (ACO).

The Genetic Algorithm is the most famous one in a class called metaheuristics or optimization algorithms. You will learn what optimization algorithms are, when to use them, and then you will solve two problems with the Genetic Algorithm(GA). The second most famous one is Simulated Annealing.

However, nature gives us fascinating sources of inspiration, such as the behaviour of ants, so that Ant Colony Optimization is an interesting algorithm as well.

We will solve continuous problems(find the maximum/minimum of a continuous function) and discrete problems, such as the Travelling Salesperson Problem (TSP), where you have to find the shortest path in a network of cities, or the Knapsack Problem.

Prerequisites:

  • understand basic C++

  • any C++ IDE (I am using Visual Studio)

  • understanding of algorithms

  • understand mathematics

I recommend that you do the examples yourself, instead of passively watching the videos.

Here's a brief outline of what you will learn:

  • What optimization algorithms are

  • Genetic Algorithm theory:

    • General structure

    • How crossover is done

    • How mutation is done

  • Genetic Algorithm on a continuous problem:

    • Challenges particular to continuous problems: decoding the bits ("chromosomes") into a float value

    • Crossover: tournament selection and single point crossover

    • Mutation

  • Genetic Algorithm on the TSP (Travelling Salesperson Problem):

    • Creating a fitness function for the TSP

    • Challenge particular to this problem: how to do crossover?

    • Mutation

  • Simulated Annealing:

    • Basic Theory

    • Optimizing Himmelblau's function

    • The knapsack problem

  • Differential Evolution:

    • Theory and different strategies

    • Code example on one strategy, the standard one (DE/rand/1/bin)

  • Ant Colony Optimization:

    • Theory and Inspiration

    • Example on the Travelling Salesperson Problem

Sign up now and let's get started!

Who this course is for:

  • Students and software developers who want to learn interesting algorithms
  • Anyone interested in metaheuristic algorithms

Course content

8 sections • 29 lectures • 2h 50m total length

  • Preview04:24
  • Random Search & Hill Climb
    02:36
  • Introduction Quiz
    3 questions

  • Preview03:23
  • Crossover and Mutation
    05:30
  • Genetic Algorithm Quiz
    5 questions

  • GA: Utility Functions and Decoding Bits Into Floating Point Values
    07:59
  • Decoding the bits - code
    08:29
  • The first generation
    06:08
  • Tournament Selection
    09:39
  • Single Point Crossover
    10:32
  • Mutation
    07:19
  • Elitism (sort of)
    03:39
  • Practice activity
    00:48
  • Continuous problem quiz
    2 questions

  • Preparing
    05:08
  • Fitness and Crossover in the Travelling Salesperson Problem
    08:13
  • Mutation in the Travelling Salesperson Problem
    05:46
  • TSP Quiz
    4 questions

  • Preview03:24
  • Simulated Annealing - Continuous Problem - Preparing
    05:03
  • Simulated Annealing - Continuous Problem - Coding
    08:11
  • Simulated Annealing - Looking at some values
    01:56
  • The Knapsack Problem with Simulated Annealing
    09:31
  • Simulated Annealing Quiz
    2 questions

  • Differential Evolution - Theory
    05:58
  • Differential Evolution - Preparing the Code
    03:32
  • DE code implementation
    08:54
  • DE code implementation contd. and running
    06:15
  • Differential Evolution Quiz
    4 questions

  • Preview05:51
  • ACO - Preparing the Code
    03:06
  • ACO - Implementation part 1
    11:20
  • ACO - Implementation part 2
    06:27

  • Bonus section
    01:43

Instructor

Serban Stoenescu
Software Development Engineer
Serban Stoenescu
  • 3.9 Instructor Rating
  • 169 Reviews
  • 6,491 Students
  • 2 Courses

I am a passionate software developer. I've been a professional programmer for 9 years now.

In one of my previous jobs, I also worked as a trainer for new recruits.

Co-author of a research paper (2014): Towards the Impact of Design Flaws on the Resources Used by an Application.

My top languages are C++ and Java.

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Impressum Kontakt
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.