Commit 69f1a6d5 authored by Gaetan D's avatar Gaetan D

pl

parent ea765a92
......@@ -96,16 +96,20 @@
\frametitle{TSPLIB}
\begin{block}{TSPLIB95}
TSPLIB une librairie d'instances de TSP avec entre $10$ et $10000$ sommets.
TSPLIB une librairie d'instances de TSP de valeurs optimales connues (ou tight encadrement).
\end{block}
\begin{exampleblock}{Parsing}
Données sous forme de :
\begin{itemize}
\item matrice explicite des coûts,
\item coordonnées des sommets dans le plan (distance euclidienne)
\item distance géodésique (lat, lon).
\end{itemize}
\begin{exampleblock}{Différentes instances}
\begin{itemize}
\item taille variable, entre 10 et 10000 sommets
\item différentes fonctions de coût (distance euclidienne, géodésique\dots).
\item parfois empruntés à la vie réélle (circuits électroniques, cartes\dots)
\end{itemize}
\end{exampleblock}
......@@ -371,14 +375,32 @@
\end{frame}
\section{Outils associés}
\begin{frame}
\frametitle{Parsing de TSPLIB}
\es
\begin{exampleblock}{Différentes données à parser}
\begin{itemize}
\item matrice explicite des coûts
\item coordonnées des sommets dans le plan (distance euclidienne)
\item distance géodésique
\end{itemize}
\end{exampleblock}
\ds
\begin{alertblock}{Représentation}
Distance euclidienne dans le plan : dessin sur Pygame.
\end{alertblock}
\end{frame}
\begin{frame}
\frametitle{Algèbre linéaire}
Ne pas utiliser de bibliothèque préexistante ?
\es
\begin{block}{Inversion de matrice}
Implémentation du pivot de Gauss.
......@@ -386,7 +408,17 @@ Ne pas utiliser de bibliothèque préexistante ?
\ds
Sans surprise, de très mauvaises performances.
Sans surprise, de très mauvaises performances : $140$s pour inverser 100 matrices aléatoires (dimension $100 \times 100$).
\es
\begin{block}{Numpy}
\texttt{numpy.linalg.inv}
\end{block}
\ds
$0.9$s pour inverser les 100 matrices\dots
\end{frame}
......@@ -405,6 +437,12 @@ Ne pas utiliser de bibliothèque préexistante ?
\begin{block}{\texttt{scipy.optimize.linopt}}
Implémentation en Python de l'algorithme du simplexe.
\end{block}
\ds
Ce n'est pas très efficace. Ni très précis.
\ds
\begin{block}{\texttt{CVXPy}}
Interface élégante de \texttt{CVXopt} associée à Python. Très efficace.
......@@ -413,7 +451,7 @@ Ne pas utiliser de bibliothèque préexistante ?
\begin{frame}
\frametitle{Stoer-Wagner}
\frametitle{Coupe minimale}
In the MinimumCutPhase, the subset A of the graphs vertices grows starting with an arbitrary single vertex until
A is equal to V. In each step, the vertex which is outside of A, but most tightly connected with A
is added to the set A.
......@@ -453,8 +491,6 @@ Ne pas utiliser de bibliothèque préexistante ?
\end{figure}
\end{exampleblock}
NOTE: Glouton = 60110 / Glouton+2OPT = 50826 / Approx2 = 66343 /
\end{frame}
\section{Dualité}
......@@ -502,8 +538,12 @@ Avec $D_{E'}$ la matirce d'incidence du graphe restreint à $E'$, et $G_{E'}$ la
\section*{Bibliographie}
\begin{frame}[allowframebreaks]
\frametitle{Bibliographie}
\bibliographystyle{apalike}
\bibliography{presentation}
......
from lineartools import invert
import numpy as np
import random
import time
sumnp = 0
sumlin = 0
for i in range(100):
n = 100
M = np.random.rand(n,n)
print("Iteration",i)
if(np.linalg.det(M) != 0):
a =time.clock()
np.linalg.inv(M)
b = time.clock()
sumnp += b-a
print("numpy done")
a =time.clock()
invert(M)
b = time.clock()
sumlin += b-a
print(sumnp,sumlin)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment