ant colony optimization

Üdvözlöm, Ön a ant colony optimization szó jelentését keresi. A DICTIOUS-ban nem csak a ant colony optimization szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a ant colony optimization szót egyes és többes számban mondani. Minden, amit a ant colony optimization szóról tudni kell, itt található. A ant colony optimization szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. Aant colony optimization és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.

Főnév

ant colony optimization (tsz. ant colony optimizations)

  1. (informatika) hangya kolónia optimalizáció

Ant Colony Optimization (ACO, magyarul: hangyakolóniás optimalizáció) egy metaheurisztikus algoritmus, amelyet kombinatorikus optimalizálási problémák megoldására használnak. A módszert Marco Dorigo vezette be 1992-ben, és inspirációját a valódi hangyák viselkedéséből nyerte, különösen abból, ahogyan feromonokat használnak az útvonalak megjelölésére.



🐜 1. Alapötlet: Mit csinálnak a hangyák?

A valódi hangyák:

  • Véletlenszerűen indulnak el élelmet keresve,
  • Ha találnak valamit, feromonnyomot hagynak visszafelé menet,
  • Más hangyák követik az erősebb feromonos útvonalakat,
  • Az optimális út lesz egyre népszerűbb (mert gyorsabban járható → több feromon).



🎯 2. ACO algoritmus lényege

Számítógépes modellben:

  • Több szimulált „hangya” felfedezi a megoldásteret,
  • Megoldásokat építenek lépésről lépésre (pl. útvonalak, sorrendek),
  • Feromon értékek és heurisztikus információk alapján döntenek,
  • A „jó megoldások” erősítik a hozzájuk tartozó útvonalakat.



📐 3. Alapfogalmak

Fogalom Jelentés
Feromon Mesterséges jel, ami a megoldások minőségét jelzi
Heurisztika Problémaspecifikus érték (pl. távolság reciprok)
Tabu lista Tiltólista a ciklusok elkerülésére
Párolgás Feromon csökkenése idővel → diverzitás fenntartása



🧮 4. Matematikai modell

Valószínűség, hogy hangya a élt választja:

ahol:

  • : feromon szint az élen
  • : heurisztikus érték (pl. )
  • : súlyozó paraméterek



🔁 5. ACO algoritmus lépései

  1. Inicializálás – feromonértékek, paraméterek
  2. Minden hangya megoldást épít – pl. egy útvonalat TSP-ben
  3. Megoldások értékelése
  4. Feromonfrissítés:
    • Párolgás: minden
    • Letét: jó megoldások növelik -t
  5. Ismétlés – új generáció, új utak



📦 6. Alkalmazások

Probléma Leírás
Travelling Salesman Problem Legrövidebb körút
Ütemezési problémák Gyártás, iskolai beosztás
Routing problémák Adathálózat, logisztika
Jármű útvonal Vehicle Routing Problem (VRP)
Telepítési feladatok Pl. vezeték tervezés



💻 7. Python példa (TSP-re, egyszerűsített)

import numpy as np

def distance_matrix(coords):
    return np.linalg.norm(coords - coords, axis=-1)

def initialize_pheromones(n, initial=1.0):
    return np.full((n, n), initial)

def aco_tsp(coords, n_ants=10, n_iter=100, alpha=1, beta=5, rho=0.1, Q=100):
    n = len(coords)
    dist = distance_matrix(coords)
    pheromone = initialize_pheromones(n)
    best_path, best_len = None, np.inf

    for _ in range(n_iter):
        paths, lengths = , 

        for _ in range(n_ants):
            visited = 
            while len(visited) < n:
                i = visited
                probs = 
                for j in range(n):
                    if j not in visited:
                        tau = pheromone ** alpha
                        eta = (1 / dist) ** beta
                        probs.append((j, tau * eta))
                total = sum(p for _, p in probs)
                probs = 
                next_city = np.random.choice(, p=)
                visited.append(next_city)
            visited.append(0)  # vissza kezdővárosba
            length = sum(dist]] for i in range(n))
            if length < best_len:
                best_len = length
                best_path = visited
            paths.append(visited)
            lengths.append(length)

        # Feromonfrissítés
        pheromone *= (1 - rho)
        for path, length in zip(paths, lengths):
            for i in range(n):
                pheromone]] += Q / length

    return best_path, best_len

⚙️ 8. Paraméterek hatása

Paraméter Jelentés Hatás
Feromon súlya nagy → erősebb tanulás
Heurisztika súlya nagy → mohóbb viselkedés
Párolgási arány nagy → gyors felejtés
Feromonmennyiség kis érték → kevesebb tanulás



📈 9. Előnyök és hátrányok

✅ Előnyök:

  • kombinatorikus optimalizálásra
  • Könnyen párhuzamosítható
  • Adaptív: tanul a korábbi eredményekből

❌ Hátrányok:

  • Sok paraméter, érzékeny beállítás
  • Lassabb konvergencia, mint pl. greedy módszereknél
  • Lokális optimum csapdája (megoldható párolgással)



🧾 10. Összefoglalás

Fogalom Leírás
ACO Véletlenszerű keresés + feromonos tanulás
Alkalmazások TSP, VRP, ütemezés, routing
Fő komponensek Feromon, heurisztika, párolgás
Előny Adaptív, robusztus keresés
Eszközök Python (ACO-Py), C++, MATLAB könyvtárak