This repository provides comprehensive instruction in Python programming and classical graph search algorithms, covering a range of methodologies. These include uninformed search approaches such as Depth-First Search, Breadth-First Search, and Uniform Search algorithms, as well as informed search strategies utilizing heuristics such as A*, Greedy algorithms, and Hill-Climbing. These algorithms constitute fundamental components of numerous classical AI techniques, playing critical roles in planning, optimization, problem-solving, and diverse domains. Additionally, the repository offers an introduction to Adversarial Search, which involves exploring multi-agent environments and making decisions in competitive scenarios, employing concepts from game theory such as the Alpha-Beta theorem. Moreover, it encompasses implementations of various computational optimization techniques, including Genetic algorithms, Particle Swarm Optimization, and Ant Colony Optimization. Furthermore, it provides instruction in fuzzy logic and knowledge engineering.
1- Intro to programming with Python
- Ref: Python documentation
2- Depth First Search
3- Breadth-First Search
4- Greedy Search
5- Uniform Search
6- Hill Climbing Search
7- A-star Search
8- Genetic algorithm - The Knapsack Problem
- Ref: kdnuggets website
9- Particle Swarm Optimization
- Ref: Medium
10- Ant Colony Optimization - Solving Traveling Sales Man Problem
- Ref: Medium
11- Logic - Knowledge Engineering
12- Fuzzy Control Systems - The Tipping Problem
- Ref: scikit-fuzzy
13- Alpha-Beta
- Ref: code360
- Visualization: Alpha-Beta Trace