140 lines
4.4 KiB
TeX
140 lines
4.4 KiB
TeX
\documentclass[a4paper,french,12pt]{article}
|
|
|
|
\title{Théorie des graphes}
|
|
\author{}
|
|
\date{Dernière compilation~: \today{} à \currenttime}
|
|
|
|
\usepackage{../cours}
|
|
\usepackage{tikz}
|
|
\usetikzlibrary{shapes.multipart}
|
|
\usetikzlibrary{automata, arrows.meta, positioning}
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
\tableofcontents
|
|
|
|
\clearpage
|
|
|
|
\section{Définitions}
|
|
|
|
Un graphe est un ensemble de sommets qui possèdent des relations.
|
|
|
|
Quand les relations sont symétriques, le graphe est \emph{non orienté}.
|
|
Les relations sont alors appelées des \emph{arrêtes}.
|
|
L'arrête $(x,y)$ est équivalente à l'arrête $(y,x)$.
|
|
|
|
Quand les relations sont non symétriques, la relation dépend d'une direction.
|
|
Le graphe est alors \emph{orienté} et les relations s'appelent des \emph{arcs}.
|
|
|
|
Un graphe peut contenir des arcs et des arrêtes, mais on dira quand même qu'il est soit \emph{orienté} soit \emph{non orienté}.
|
|
Dès qu'il existe des relations non symétriques, donc des arcs, on parle donc de graphe orienté.
|
|
|
|
On peut ajouter une valeur aux relations (par exemple pour le calcul d'un temps de trajet, ou un coût pour le calcul d'une route OSPF).
|
|
On parle alors de graphe \emph{valué}.
|
|
S'il n'y pas de valeur associée aux relations, le graphe est \emph{non valué}.
|
|
|
|
\section{Matrice d'un graphe orienté}
|
|
|
|
\begin{multicols}{2}
|
|
|
|
On peut passer d'une représentation graphique à un tableau~: \\\\
|
|
\begin{tabularx}{\linewidth}{YYYYY}
|
|
& A & B & C & D \\
|
|
A & 0 & 1 & 1 & 1 \\
|
|
B & 0 & 0 & 0 & 0 \\
|
|
C & 0 & 1 & 0 & 1 \\
|
|
D & 0 & 1 & 0 & 0 \\
|
|
\end{tabularx}
|
|
|
|
\begin{center}
|
|
\begin{tikzpicture}[-latex,auto,x=2cm,y=2cm]
|
|
\node(a)[state] at (0,0) {A};
|
|
\node(b)[state] at (2,0) {B};
|
|
\node(c)[state] at (2,-2) {C};
|
|
\node(d)[state] at (0,-2) {D};
|
|
\path
|
|
(a) edge (b)
|
|
(a) edge (c)
|
|
(a) edge (d)
|
|
(c) edge (b)
|
|
(c) edge (d)
|
|
(d) edge (b)
|
|
;
|
|
\end{tikzpicture}
|
|
\end{center}
|
|
|
|
\end{multicols}
|
|
|
|
\section{Types de graphes}
|
|
|
|
\subsection{Cycle}
|
|
|
|
Depuis un sommet on peut rejoindre le même somment en empruntant les chemins qu'une seule fois.
|
|
|
|
\begin{tikzpicture}[-latex,auto,x=2cm,y=2cm]
|
|
\node(a)[state] at (0,0) {a};
|
|
\node(b)[state] at (0,1) {b};
|
|
\node(c)[state] at (1,1) {c};
|
|
\node(d)[state] at (1,0) {d};
|
|
\path
|
|
(a) edge (b)
|
|
(b) edge (c)
|
|
(c) edge (d)
|
|
(d) edge (a)
|
|
;
|
|
\end{tikzpicture}
|
|
|
|
\paragraph{Cycle Hamiltonien}
|
|
|
|
\paragraph{Cycle Eulerien}
|
|
|
|
\subsection{Chaîne}
|
|
|
|
Suite de sommets reliés par des arrêtes.
|
|
|
|
\paragraph{Chaîne Hamiltonienne}
|
|
|
|
C'est une chaîne passant par tous les sommets.
|
|
|
|
\begin{tikzpicture}[-,auto,x=2cm,y=2cm]
|
|
\node(a)[state] at (0,0) {a};
|
|
\node(b)[state] at (0,1) {b};
|
|
\node(c)[state] at (1,1) {c};
|
|
\node(d)[state] at (1,0) {d};
|
|
\path
|
|
(a) edge (b)
|
|
(b) edge (c)
|
|
(c) edge (d)
|
|
;
|
|
\end{tikzpicture}
|
|
|
|
\paragraph{Chaîne Eulerienne}
|
|
|
|
C'est une chaîne passant par toutes les arrêtes.
|
|
|
|
\begin{tikzpicture}[-latex,auto,x=2cm,y=2cm]
|
|
\node(a)[state] at (0,0) {a};
|
|
\node(b)[state] at (0,1) {b};
|
|
\node(c)[state] at (1,1) {c};
|
|
\node(d)[state] at (1,0) {d};
|
|
\path
|
|
(a) edge (b)
|
|
(a) edge (c)
|
|
(b) edge (c)
|
|
(c) edge (d)
|
|
(d) edge (b)
|
|
;
|
|
\end{tikzpicture}
|
|
|
|
\section{Fonction $\Gamma$}
|
|
|
|
\subsection{Extrémité, prédécésseur, successeur}
|
|
|
|
Soit $G=(S,A)$ un graphe.
|
|
Soient $x$ et $y$ deux sommets de $S$.
|
|
$a=(x,y)$ (arrête ou arc) étant un élément de l'ensemble $A$, $x$ et $y$ sont alors des \emph{extrémités} de $a$.
|
|
|
|
Si $a$ est un arc (donc orienté) allant de $x$ à $y$, alors $x$ est le \emph{prédécesseur} de $y$ et $y$ est le \emph{successeur} de $x$.
|
|
|
|
\end{document}
|