Commit c3712eee authored by Gaetan D's avatar Gaetan D

Merge branch 'master' of gitlab.crans.org:alopez/projet-optimisation

parents f487f4e7 1bb139d5
......@@ -125,7 +125,7 @@ logging.basicConfig(filename='approximations_run.log',
datefmt='%m/%d/%Y %I:%M:%S %p')
# Choix du fichier test
filename = "kroA100"
filename = "eil101"
probleme = read_tsp_file ("problemes/{}.tsp".format (filename))
graphe = probleme["GRAPH"]
......
......@@ -256,9 +256,9 @@ def algorithme_separation(graphe, filename="default_separation_output",epsilon =
sol = res["x"]
value = np.vdot(c,sol)
chemin_majorant = convert_to_tour(graphe,convert_to_edges (graphe,sol))
chemin_majorant = h.heuristique(graphe, chemin_majorant)
res["opt*"] = graphe.cout_chemin (chemin_majorant)
# chemin_majorant = convert_to_tour(graphe,convert_to_edges (graphe,sol))
# chemin_majorant = h.heuristique(graphe, chemin_majorant)
res["opt*"] = 0 # graphe.cout_chemin (chemin_majorant)
affiche(res)
......@@ -372,4 +372,4 @@ def test_separation_on_file (filename):
test_separation_on_file("berlin52")
test_separation_on_file("u574")
......@@ -94,9 +94,12 @@
\frametitle{Applications}
\begin{itemize}
\item Logistique
\item Logistique
\item Réseaux
\item Robotique \cite{brassai2012optimization}
\item Biologie (génétique)
\item etc...
\item Machine Learning~: prédiction des fonctions
des protéines \cite{Johnson2006}
\end{itemize}
\end{frame}
......@@ -105,7 +108,20 @@
\begin{frame}
\frametitle{TSPLIB}
IMMONDE
\begin{block}{TSPLIB95}
TSPLIB is a library of sample instances for the TSP (and related problems) from various sources and of various types.
\end{block}
\begin{exampleblock}{Parsing}
\begin{itemize}
\item Matrice
\item Euclidien
\item Distance GÉO
\end{itemize}
\end{exampleblock}
\end{frame}
......@@ -129,11 +145,36 @@
à renverser en raisonnant sur les
sommets.
\end{block}
\begin{alertblock}{Temps}
Temps très long, potentiellementp pas borné !!!
Néanmoins, cas euclidien avec quelques restrictions,
on peut se ramener à un truc bien
\end{alertblock}
\end{frame}
\subsection{La 2 approximation}
Dans le cas de l'inégalité triangulaire.
\begin{frame}
Dans le cas de l'inégalité triangulaire. Calcul en temps $O(|G|^2)$.
\end{frame}
\begin{frame}
\frametitle{Combinaison des deux approches}
\begin{exampleblock}{Exemple~: eil101 (629)}
\begin{figure}
\centering
\subfloat[2 Approximation seule (878)]{
\includegraphics[width=4cm]{../images/00_APPROX_eil101_approx2.png}
}
\subfloat[Suivie de 2OPT (679)]{
\includegraphics[width=4cm]{../images/00_APPROX_eil101_approx2_2opt.png}
}
\caption{Évolution de la solution}
\end{figure}
\end{exampleblock}
\end{frame}
\subsubsection{La 1.5 approximation}
\begin{frame}
......@@ -144,14 +185,38 @@ Dans le cas de l'inégalité triangulaire.
\subsubsection{Description}
\begin{frame}
\frametitle{Description de l'algorithme glouton}
\begin{block}{Def}
On se donne un poids $w$ sur les arêtes (une préférence)
et on va utiliser ça pour fare des choses
vachement bien.
\end{block}
\begin{exampleblock}{Remarque}
Le choix du poids est important, et on peut
prendre la distance, ou bien le résultat
donné par un PL ... comme par hasard !
\end{exampleblock}
\end{frame}
\subsubsection{Avec des distances}
\begin{frame}
\frametitle{}
\begin{block}{coucou}
\begin{center}
\includegraphics[width=5cm]{../images/00154_APPROX_kroA100_glouton.png}
\end{center}
\begin{figure}
\centering
\subfloat[Résultat partiel]{
\includegraphics[width=5cm]{../images/00154_APPROX_kroA100_glouton.png}
}
\subfloat[Résultat final ]{
\includegraphics[width=5cm]{../images/00_APPROX_kroA100_glouton.png}
}
\caption{Algorithme glouton en utilisant les distances}
\end{figure}
\end{block}
\end{frame}
......@@ -179,10 +244,10 @@ Dans le cas de l'inégalité triangulaire.
\begin{exampleblock}{Exemple~: Berlin51, 51 points, optimum à 7542}
\begin{figure}
\centering
\subfloat[2-Approx\label{fig:approx:berlin:approx2}]{
\subfloat[2-Approx]{
\includegraphics[width=3cm]{../images/00_APPROX_berlin52_approx2.png}
}
\subfloat[2-Approx + 2OPT\label{fig:approx:berlin:approx2opt}]{
\subfloat[2-Approx + 2OPT]{
\includegraphics[width=3cm]{../images/00_APPROX_berlin52_approx2_2opt.png}
}
......@@ -229,14 +294,40 @@ Dans le cas de l'inégalité triangulaire.
\end{frame}
\begin{frame}
\frametitle{Présentation sous forme ILP}
\begin{exampleblock}{Exemple non entier~: ts225}
\begin{figure}
\centering
\subfloat[Solution optimale]{
\includegraphics[width=4cm]{../images/0CVX_ts225_separationfinie.png}
}
\subfloat[Conversion via glouton]{
\includegraphics[width=4cm]{../images/0CVX_ts225_approxPL.png}
}
\caption{Programme linéaire sur ts225}
\end{figure}
\end{exampleblock}
\end{frame}
\begin{frame}
\frametitle{Présentation sous forme ILP}
\begin{alertblock}{Nombre de contraintes}
exponentiel
Retirer les contraites de \emph{sous-tours}
et ne les ajouter que pour améliorer la solution.
\end{alertblock}
\begin{block}{Oracle de séparation}
c'est la solution
Permet de trouver quelle contrainte ajouter.
\end{block}
\begin{block}{Algorithme de séparation}
\[
v_1 \leq v_2 \leq \dots \leq v^* \leq v_{\textrm{entier}}
\]
\end{block}
\end{frame}
......@@ -261,6 +352,22 @@ Dans le cas de l'inégalité triangulaire.
\end{frame}
\begin{frame}
\frametitle{Coupe minimale et séparation}
\begin{exampleblock}{Exemple~:}
\begin{figure}
\centering
\subfloat[Sans contraintes (7337)]{
\includegraphics[width=4cm]{../images/0CVX_rd100_simple.png}
}
\subfloat[Après séparation (7899)]{
\includegraphics[width=4cm]{../images/0CVX_rd100_separationfinie.png}
}
\caption{Programme linéaire sur ts225 (7910)}
\end{figure}
\end{exampleblock}
\end{frame}
\subsection{Intégralité ?}
\section{Outils associés}
......@@ -322,19 +429,21 @@ Dans le cas de l'inégalité triangulaire.
\begin{frame}
\begin{example}{Sur un problème avec 657 points}
\begin{exampleblock}{Sur un problème avec 657 points}
\begin{figure}
\centering
\subfloat[Solution ($48452$) \label{fig:approx:berlin:approx2}]{
\subfloat[Solution ($48452$)]{
\includegraphics[width=5cm]{../images/0CVX_d657_separationfinie.png}
}
\subfloat[Tour associé ($51181$) \label{fig:approx:berlin:approx2opt}]{
\subfloat[Tour associé ($51181$)]{
\includegraphics[width=5cm]{../images/0CVX_d657_approxPL.png}
}
\caption{Le problème d657 de valeur optimale $48912$}
\label{fig:pl:d657}
\end{figure}
\end{example}
\end{exampleblock}
NOTE: Glouton = 60110 / Glouton+2OPT = 50826 / Approx2 = 66343 /
\end{frame}
......@@ -381,13 +490,13 @@ Avec $D_{E'}$ la matirce d'incidence du graphe restreint à $E'$, et $G_{E'}$ la
%\section*{Bibliographie}
\section*{Bibliographie}
%\begin{frame}[allowframebreaks]
\begin{frame}[allowframebreaks]
%\bibliographystyle{apalike}
%\bibliography{presentation}
\bibliographystyle{apalike}
\bibliography{rapport_projet_opti}
%\end{frame}
\end{frame}
\end{document}
......@@ -175,3 +175,28 @@
year={2014},
volume={abs/1309.6124}
}
@Article{Johnson2006,
author="Johnson, Olin
and Liu, Jing",
title="A traveling salesman approach for predicting protein functions",
journal="Source Code for Biology and Medicine",
year="2006",
volume="1",
number="1",
pages="3",
abstract="Protein-protein interaction information can be used to predict unknown protein functions and to help study biological pathways.",
issn="1751-0473",
doi="10.1186/1751-0473-1-3",
url="http://dx.doi.org/10.1186/1751-0473-1-3"
}
@article{brassai2012optimization,
title={Optimization of robotic mobile agent navigation},
author={Brassai, S{\'a}ndor Tiham{\'e}r and Iantovics, Barna and Enachescu, Calin},
journal={Studies in Informatics and Control, ISSN},
pages={1220--1766},
year={2012}
}
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