Catalog PyPI
Back to packageRELEASE DETAILS

0.2.3

PyPI

aco

Ant Colony Optimization in Python

Published2 Nov 2022
Direct dependencies0
Transitive dependenciesNot calculated

README

Version 0.2.3 documentation

Ant Colony Optimization

Implementation of the Ant Colony Optimization algorithm in Python

Currently works on 2D Cartesian coordinate system

Installation

From PyPi

pip install aco

Using Poetry

poetry add aco

Usage

AntColony(
    nodes,
    start=None,
    ant_count=300,
    alpha=0.5,
    beta=1.2,
    pheromone_evaporation_rate=0.40,
    pheromone_constant=1000.0,
    iterations=300,
)

Travelling Salesman Problem

import matplotlib.pyplot as plt
import random

from aco import AntColony


plt.style.use("dark_background")


COORDS = (
    (20, 52),
    (43, 50),
    (20, 84),
    (70, 65),
    (29, 90),
    (87, 83),
    (73, 23),
)


def random_coord():
    r = random.randint(0, len(COORDS))
    return r


def plot_nodes(w=12, h=8):
    for x, y in COORDS:
        plt.plot(x, y, "g.", markersize=15)
    plt.axis("off")
    fig = plt.gcf()
    fig.set_size_inches([w, h])


def plot_all_edges():
    paths = ((a, b) for a in COORDS for b in COORDS)

    for a, b in paths:
        plt.plot((a[0], b[0]), (a[1], b[1]))


plot_nodes()

colony = AntColony(COORDS, ant_count=300, iterations=300)

optimal_nodes = colony.get_path()

for i in range(len(optimal_nodes) - 1):
    plt.plot(
        (optimal_nodes[i][0], optimal_nodes[i + 1][0]),
        (optimal_nodes[i][1], optimal_nodes[i + 1][1]),
    )


plt.show()

screenshot


Reference

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 0

Native requirements
0 direct targetsNot calculated transitive count
No declared dependencies in this collected response

Declarations describe requirements; they are not a resolved dependency graph.

Distribution files

2 collected
aco-0.2.3-py3-none-any.whl

bdist_wheel · 3.24 KB · Python py3

Source file
aco-0.2.3.tar.gz

sdist · 3.47 KB · Python source

Source file

Repository

PENDING
harish3124/aco

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 18:20 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:186add6ef36fef15bebb65c64be4f9d5c8f3eb00da35b18ad5c02f4e6fd293a8

Other collected versions

View all collected versions →