Optimization with Metaheuristics in Python
4.5 (508 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
2,833 students enrolled

Optimization with Metaheuristics in Python

Learn Simulated Annealing, Genetic Algorithm, Tabu Search, and Evolutionary Strategies, and Learn to Handle Constraints
Bestseller
4.5 (508 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
2,833 students enrolled
Last updated 8/2020
English
English [Auto]
Current price: $104.99 Original price: $149.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 10 hours on-demand video
  • 7 articles
  • 8 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Learn the foundations of optimization
  • Understand metaheuristics such as Simulated Annealing, Genetic Algorithm, Tabu Search, and Evolutionary Strategies
  • Be able to code metaheuristics in Python
  • Handle constraints though penalties
Requirements
  • Basic knowledge in Operations Research and Optimization - (not a must, but helpful)
  • Basic programming skills in Python - (not a must, but helpful)
Description

This course will guide you on what optimization is and what metaheuristics are. You will learn why we use metaheuristics in optimization problems as sometimes, when you have a complex problem you'd like to optimize, deterministic methods will not do; you will not be able to reach the best and optimal solution to your problem, therefore, metaheuristics should be used.

This course covers information on metaheuristics and four widely used techniques which are:

  • Simulated Annealing

  • Genetic Algorithm

  • Tabu Search

  • Evolutionary Strategies

By the end of this course, you will learn what Simulated Annealing, Genetic Algorithm, Tabu Search, and Evolutionary Strategies are, why they are used, how they work, and best of all, how to code them in Python! With no packages and no libraries, learn to code them from scratch!! You will also learn how to handle constraints using the penalty method.

Here's the awesome part --> you do NOT need to know Python programming!

  • This course will teach you how to optimize continuous and combinatorial problems using Python

  • Where every single line of code is explained thoroughly

  • The code is written in a simple manner that you will understand how things work and how to code the algorithms even with zero knowledge in Python

  • Basically, you can think of this as not only a course that teaches you 4 well known metaheuristics, but also Python programming!

Please feel free to ask me any question! Don't like the course? Ask for a 30-day refund!!


Real Testaments -->

1) "I can say that this is the best course I've had on Udemy ! Dana is a very good instructor. She not only explains the problems and the coding, but also reassures you and remove the fears you might have when learning complex concepts. For someone with a business background, this topic was close to a nightmare ! I highly recommend this course for anyone interested in learning about Metaheuristics. Again, big THANK YOU Dana ! :)" -- Logistics Knowledge Bank, 5 star rating

2) "I am half way through the course. What I learnt so far is far beyond what I expected. What I really liked is the applicability of the examples to real world problems. The most exciting feature in the course is the hands on, what you learn will be implemented in python and you can follow every single step. If you did not understand, the instructor is there to help. I even felt like it is a one to one course. Thanks a lot to the instructor." -- Ali, 5 star rating

3) "The best introduction to Metaheuristics bar none. Best value course on Udemy. I love that we cover a bit of theory and code the actual algorithm itself. The course doesn't just give you some package to use but presents you with code very easy to follow. The code is not optimized or written for maximum performance but for maximum readability. This means you can play around with it once you really understand it and speed it up. Thank you Dana for this amazing course. It has given me the confidence to code my own slightly more advanced algorithms from Sean Luke's book: Essential Metaheuristics. I feel the two are great companions." -- Dylan, 5 star rating

4) "It is a great introduction to Metaheuristics. The course deserves five stars for the overall information on this topic. The instructor is talented and knowledgeable about the optimization problems. I recommend the course for someone looking to solve an ​optimization problem." -- Abdulaziz, 5 star rating

5) "I still not finished the course, but until now, I am really satisfied with I've seen. THEORETICAL EXPLANATIONS: Dana is very didactic, before presenting the code she always briefly present the theory in a simple way, much easier to understand than books and journal papers explanations. Of course, it is necessary to complement this with other materials, but if you already have a theoretical base, it is just great! Dana, I loved your explanation about crossover and mutation! FOR BEGINNERS IN PYTHON: I am a beginner in Python and even in programming, so Dana's code helped me a lot to understand the meaning of each step and variable since she wrote a very readable code. GOOD TIME-MANAGEMENT: Dana presents the code already done but she explains what she has done in each step. Thus, in 5 minutes we can learn a lot, without being bored. I prefer this way of doing because I've done courses with teachers that do the code during the classes and we waste a lot of time fixing errors and bugs. She is objective and efficient on teaching, I like that. There are things not totally clear to me on courses, so I ask questions to Dana. She takes some days to give us an answer, but she replies anyway. I would appreciate an example of constraint handling for combinatorial problems." -- Rachel, 4.5 star rating

6) "Nice course that really does explain Metaheuristics in a very practical way. Highly recommended!" -- David, 5 star rating

Who this course is for:
  • Anyone who wants to learn about metaheuristics
  • Anyone who wants to learn Genetic Algorithm
  • Anyone who wants to learn Simulated Annealing
  • Anyone who wants to learn Tabu Search
  • Anyone who wants to learn Evolutionary Strategies
  • Anyone who wants to code metaheuristics in Python
  • Anyone who wants to learn how to handle constraints
Course content
Expand all 83 lectures 09:52:51
+ Introduction
9 lectures 47:41
Quiz #1
1 question
Continuous vs. Combinatorial Problems
09:20
P vs. NP Problems Resource (IMPORTANT!!!)
00:07
Metaheuristics
03:35
Search Techniques #1
05:43
Search Techniques #2
06:23
Search Techniques #3
07:23
Quiz #2
1 question
+ Simulated Annealing
17 lectures 02:06:04
Simulated Annealing #1
02:52
Simulated Annealing #2
04:55
Simulated Annealing #3
09:51
Quiz #3
1 question
Updated Course (IMPORTANT)
00:14
SA: Continuous Problem - The Himmelblau Function
04:11
SA: Continuous Problem - Python #1 - Basics
06:12
SA: Continuous Problem - Python #2 - User-Set Parameters
09:55
SA: Continuous Problem - Python #3 - Neighborhood Search
10:35
SA: Continuous Problem - Python #4 - Do We Accept Worse Moves?
08:23
SA: Continuous Problem - Python #5 - Iterations and Solving
11:44
SA: Continuous Problem - Python #6 - Different Runs for Different Outcomes
03:28
SA: Continuous Problem - Python #7 - Plotting Results #1
18:40
SA: Continuous Problem - Python #8 - Plotting Results #2
18:00
Updated Course Reminder (IMPORTANT)
00:26
SA: Coding a Combinatorial Problem with Python, Part #1
04:59
SA: Coding a Combinatorial Problem with Python, Part #2
03:40
SA: Coding a Combinatorial Problem with Python, Part #3
07:59
+ Genetic Algorithm
41 lectures 05:15:01
Genetic Algorithm #1
02:39
Genetic Algorithm #2
07:05
Genetic Algorithm #3
04:11
Chromosome Length
00:09
Genetic Algorithm - Pseudocode and Flowchart
12:25
Genetic Algorithm - Methodology
09:32
Quiz #4
1 question
Updated Course (IMPORTANT)
00:17
GA: Coding a Continuous Problem - The Himmelblau Function
05:12
GA: Continuous Problem - Python #1 - Objective Function Value #1
14:49
GA: Continuous Problem - Python #2 - Objective Function Value #2
09:16
GA: Continuous Problem - Python #3 - Objective Function Value #3
09:57
GA: Continuous Problem - Python #4 - Selecting Parents #1
05:13
GA: Continuous Problem - Python #5 - Selecting Parents #2
02:42
GA: Continuous Problem - Python #6 - Selecting Parents #3
06:41
GA: Continuous Problem - Python #7 - Selecting Parents #4
06:16
GA: Continuous Problem - Python #8 - Selecting Parents #5
08:05
GA: Continuous Problem - Python #9 - Selecting Parents #6
11:40
GA: Continuous Problem - Python #10 - Crossover Operator #1
09:03
GA: Continuous Problem - Python #11 - Crossover Operator #2
14:33
GA: Continuous Problem - Python #12 - Crossover Operator #3
14:57
GA: Continuous Problem - Python #13 - Mutation Operator #1
04:43
GA: Continuous Problem - Python #14 - Mutation Operator #2
05:44
GA: Continuous Problem - Python #15 - Mutation Operator #3
06:42
GA: Continuous Problem - Python #16 - Mutation Operator #4
09:01
GA: Continuous Problem - Python #17 - Functions and Packages
09:27
GA: Continuous Problem - Python #18 - Solving #1
07:35
GA: Continuous Problem - Python #19 - Solving #2
05:12
GA: Continuous Problem - Python #20 - Solving #3
05:55
GA: Continuous Problem - Python #21 - Solving #4
02:59
GA: Continuous Problem - Python #22 - Solving #5
05:52
GA: Continuous Problem - Python #23 - Solving #6
09:38
GA: Continuous Problem - Python #24 - Solving #7
15:37
GA: Continuous Problem - Python #25 - Solving #8
09:31
GA: Continuous Problem - Python #26 - Solving #9
06:17
GA: Continuous Problem - Python #27 - Plotting Results
21:05
Updated Course Reminder (IMPORTANT)
00:28
GA: Coding a Combinatorial Problem with Python, Part #1
05:11
GA: Coding a Combinatorial Problem with Python, Part #2
08:02
GA: Coding a Combinatorial Problem with Python, Part #3
08:27
GA: Coding a Combinatorial Problem with Python, Part #4
04:37
GA: Coding a Combinatorial Problem with Python, Part #5
08:15
+ Tabu Search
6 lectures 33:00
Tabu Search #1
01:09
Tabu Search #2
05:49
Tabu Search #3
04:18
Quiz #5
1 question
TS: Coding a Combinatorial Problem with Python, Part #1
05:34
TS: Coding a Combinatorial Problem with Python, Part #2
07:49
TS: Coding a Combinatorial Problem with Python, Part #3
08:21
+ Evolutionary Strategies
6 lectures 40:56
Evolutionary Strategies #1
01:49
Evolutionary Strategies #2
08:02
Evolutionary Strategies #3
05:05
Quiz #6
1 question
ES: Coding a Continuous Problem with Python, Part #1
05:41
ES: Coding a Continuous Problem with Python, Part #2
10:22
ES: Coding a Continuous Problem with Python, Part #3
09:57
+ Constraint Handling
3 lectures 29:46
Constraint Handling #1
05:42
Constraint Handling #2
10:04
Constraint Handling #3
14:00
Quiz #7
1 question
+ BONUS OFFER!!
1 lecture 00:22
Bonus Lecture: Discounted Coupons
00:22