summaryrefslogtreecommitdiff
path: root/algos.c
diff options
context:
space:
mode:
authorAlex AUVOLAT <alex.auvolat@ens.fr>2013-12-08 11:11:35 +0100
committerAlex AUVOLAT <alex.auvolat@ens.fr>2013-12-08 11:11:35 +0100
commit117cacb7f592bc7a4e506da290fa28dd77530b1a (patch)
tree3ca8bf7f15cbe2deab57e68844c6c479eecd4e11 /algos.c
parent3f0043d05660dd51108f9cd2fcd06975cd8014cf (diff)
parent3c8b380b98b8fd5dcbaa3a254ab71ac20a485099 (diff)
downloadAlgoProg-Projet-117cacb7f592bc7a4e506da290fa28dd77530b1a.tar.gz
AlgoProg-Projet-117cacb7f592bc7a4e506da290fa28dd77530b1a.zip
Merge branch 'master' of sas.eleves.ens.fr:/users/13/info/oulamara/Work/AlgoProg-Projet
Conflicts: algos.c
Diffstat (limited to 'algos.c')
-rw-r--r--algos.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/algos.c b/algos.c
index 1595676..35f1dfd 100644
--- a/algos.c
+++ b/algos.c
@@ -1,5 +1,12 @@
#include "algos.h"
+
+/*Premier algorithme naïf.
+ * g : graphe où on cherche les cliques
+ * k : clique actuelle
+ * c : noeuds candidats à l'ajout
+ * mc : clique maximale actuelle
+*/
void max_clique_a(const graph g, set k, set c, set *mc) {
if (is_set_empty(c)) {
if (set_size(k) > set_size(*mc)) {
@@ -23,6 +30,14 @@ void max_clique_a(const graph g, set k, set c, set *mc) {
}
}
+/** Algorithme avec l'optimisation : on évite d'énumérer plusieurs fois
+ * la même clique.
+ * g : graphe où on cherche les cliques
+ * k : clique actuelle
+ * c : noeuds candidats à l'ajout
+ * a : noeuds que l'on s'autorise à ajouter
+ * mc : clique maximale actuelle
+ * */
// Voir notice de convention ci-dessous
void max_clique_b(const graph g, set k, set c, set a, set *mc) {
if (is_set_empty(c)) {
@@ -48,6 +63,14 @@ void max_clique_b(const graph g, set k, set c, set a, set *mc) {
}
}
+/** Algorithme avec la méthode du pivot
+ * la même clique.
+ * g : graphe où on cherche les cliques
+ * k : clique actuelle
+ * c : noeuds candidats à l'ajout
+ * a : noeuds que l'on s'autorise à ajouter
+ * mc : clique maximale actuelle
+ * */
// Convention : lors d'un appel de fonction, les set donnés en
// argument peuvent être modifiés à la guise de l'algorithme
// Il est donc de la responsabilité de l'appellant de vérifier qu'à