teachpyx.video.tsp_kruskal_pygame¶
- teachpyx.video.tsp_kruskal_pygame.amelioration_chemin(chemin: List[Tuple[float, float]], taille_zone: float, X: float, Y: float, taille: int = 10, screen=None, pygame=None, max_iter: int | None = None, images=None, distance: Callable[[Tuple[float, float], Tuple[float, float]], float] | None = None, verbose: int = 0)[source][source]¶
Amélioration du chemin par un algorithme simple, utilise des retournements de taille au plus taille, traite les arcs qui se croisent, traite les grands arcs, utilise un quadrillage de taille window, X est le nombre de zones horizontalement, Y est le nombre de zones verticalement, taille_zone est la longueur d’un côté du carré d’une zone.
- teachpyx.video.tsp_kruskal_pygame.circuit_eulerien(villes: List[Tuple[float, float]], arbre: List[List[int]], screen, pygame, verbose: int)[source][source]¶
Définit un circuit eulérien, villes contient la liste des villes, tandis que arbre est une liste de listes,
arbre[i]
est la liste des villes connectées à la ville i, on suppose que arbre est un graphe de poids minimal non orienté, l’algorithme ne marche pas s’il existe des villes confondues, un circuit eulérien passe par tous les arêtes une et une seule fois.
- teachpyx.video.tsp_kruskal_pygame.display_arbre(villes, arbre, mult=1, screen=None, pygame=None)[source][source]¶
Dessine le graphe de poids minimal dꧩni par arbre.
- teachpyx.video.tsp_kruskal_pygame.display_chemin(neurones, bn, screen, pygame)[source][source]¶
Dessine le chemin à l’écran.
- teachpyx.video.tsp_kruskal_pygame.display_ville(villes, screen, bv, pygame)[source][source]¶
Dessine les villes à l’écran.
- teachpyx.video.tsp_kruskal_pygame.pygame_simulation(size: Tuple[int, int] = (800, 500), zone: int = 20, length: int = 10, max_iter: int | None = None, nb: int = 700, pygame=None, folder=None, first_click: bool = False, distance=None, flags=0, verbose: int = 0)[source][source]¶
- Paramètres:
pygame – module pygame
nb – number of cities
first_click – attend la pression d’un clic de souris avant de commencer
folder – répertoire où stocker les images de la simulation
size – taille de l’écran
delay – delay between two tries
folder – folder where to save images
distance – distance function
flags – see pygame.display.set_mode
verbose – verbosity
- Renvoie:
La simulation ressemble à ceci :
Pour lancer la simulation:
import pygame from teachpyx.video.tsp_kruskal_pygame import pygame_simulation pygame_simulation(pygame)
- teachpyx.video.tsp_kruskal_pygame.tsp_kruskal_algorithm(points: List[Tuple[float, float]], size: int = 20, length: int = 10, max_iter: int | None = None, pygame=None, screen=None, images=None, distance: Callable[[Tuple[float, float], Tuple[float, float]], float] | None = None, verbose: int = 0)[source][source]¶
Finds the shortest path going through all points, points require to be a 2 dimensional space.
- Paramètres:
points – list 2-tuple (X,Y)
size – the 2D plan is split into square zones
length – sub path
max_iter – max number of iterations
pygame – pygame for simulation
screen – with pygame
images – save intermediate images
distance – distance function
verbose – veerbosity
- Renvoie:
path
The distance is a function which takes two tuples and returns a distance:
def distance(p1, p2): # ... return d
Les points identiques sont enlevés puis ajoutés à la fin.