Skip to content

BartJagodzinski/graph_theory

Repository files navigation

This repository contains implementations of several popular algorithms for solving optimization problems:

A*

Ant Colony

Nearest Neighbor

Breadth-First Search (BFS)

Depth-First Search (DFS)

Simulated Annealing

A*

The A* algorithm is a popular search algorithm that combines the strengths of both breadth-first search and depth-first search. It uses a heuristic function to guide the search and prioritize the most promising paths, resulting in faster convergence to the optimal solution.

Ant Colony

Ant Colony is a metaheuristic algorithm that uses the behavior of ants searching for food to solve optimization problems. It is based on the observation that ants are able to find the shortest path between their nest and a food source by laying down pheromone trails that other ants can follow.

Nearest Neighbor

The Nearest Neighbor algorithm is a simple heuristic for solving the traveling salesmanperson problem. It works by starting at a random city and visiting the nearest unvisited city, repeating this process until all cities have been visited. The resulting tour is typically suboptimal, but it provides a good starting point for more sophisticated algorithms.

Breadth-First Search (BFS)

Breadth-First Search (BFS) is a simple search algorithm that explores all the nodes at the current depth before moving on to the next depth. It is complete and optimal for problems where the cost of moving from one node to another is uniform, but it can be slow for large or complex problems.

Depth-First Search (DFS)

Depth-First Search (DFS) is a simple search algorithm that explores the deepest node first. It is complete and optimal for problems where the cost of moving from one node to another is uniform, but it can be slow for large or complex problems.

Simulated Annealing

Simulated Annealing is a metaheuristic algorithm that is based on the concept of annealing in metallurgy. It uses a random search to explore the solution space, but it gradually reduces the amount of randomness over time to converge on the optimal solution. It is useful for solving optimization problems that have many local optima.

About

Operations on graphs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages