AI Optimization using Hill Climbing Algorithm with Python
Nuruzzaman Faruqui Nuruzzaman Faruqui
16.2K subscribers
11,601 views
256

 Published On Oct 4, 2021

Optimization is a crucial topic of Artificial Intelligence (AI). Getting an expected result using AI is a challenging task. However, getting an optimized result is more complicated. This lesson covers one of the commonly used optimization algorithms in AI – the Hill Climbing Algorithm. This lesson will help you understand the problem space. Then convert it into a state-space landscape so that you can think mathematically model the problem space. Finally, it will guide you throughout the implementation process.

Download the Code and Assets:
Download the code and the assets folder using the following URL: https://drive.google.com/drive/folder...

Prerequisite / Requirement:
This is an advanced-level course, and thus it requires the following prerequisites:
1. Basic understanding of object-oriented programming language,
2. Familiarity with Python programming language,
3. Knowledge of AI Search algorithms,
4. Knowledge of Linear Algebra.

Course Outline:
The entire course has been divided into smaller modules. The purpose of this modular approach is to ensure ease of navigation. Learners can travel back and forth among the modules with maximum flexibility. The course outline of this course is as follows:

Part 1 – Theoretical Concept
1. What is optimization?
2. Local Search Algorithm.
3. Understanding the problem space.
4. Problem space to State-Space Landscape formation.
5. Terminologies related to State-Space Landscape.
6. Concept of Hill-climbing algorithm.

Part 2 – Implementation using Python Language:
1. Preparing the coding environment.
2. Defining class and constructor.
3. Constructing the 'Add House' method.
4. Creating the 'Available Space' method.
5. Developing the 'Get Cost' method.
6. Preparing the 'Get Neighbor' method.
7. Creating the 'Output Image' method.
8. Coding the 'Hill-Climb' method.
9. Running and experimenting with the class.

After completing this course, you will have substantial knowledge of the working principle of the Hill-Climbing algorithm. You will also be able to apply it in optimizing real-world solutions. Apart from the theoretical concept, this lesson will help you build confidence to model real-world problems using object-oriented programming. You will be able to apply the idea of AI in optimizing solutions. In a nutshell, after completing this lesson, you will have the following:

1. Understanding the concept of the Hill-Climbing algorithm,
2. Ability to convert a problem space into the state-space landscape,
3. Understanding the domain of object and cost function,
4. Specifying optimization goal based on the function nature,
5. Ability to think in code and implement the concept using object-oriented programming.

show more

Share/Embed