Rangement des biefs dans le vecteur des inconnues pour avoir H triangulaire supérieure

Nous allons décrire l’algorithme de classement en utilisant l’exemple précédent dans lequel nous nous intéresserons uniquement aux biefs de maille.

On met dans le tableau colonne NOEUD, la liste des noeuds amont des biefs de maille et dans le tableau à deux dimensions BIEF, la liste des biefs de maille reliés à ces noeuds. Quand un bief arrive sur un noeud, il est affecté du signe moins.

NOEUDBIEF
Ligne 1DC124Ü Liste des biefsLigne 2DC236-2 connectés au noeudLigne 3FC15-4 DC1

Dans le tableau BIEF, les nombres positifs qui n’apparaissent qu’une seule fois sont des biefs aval de maille.

Biefs aval de maille : 3, 5, 6

L’algorithme se déroule deux étapes :

Première étape : on parcourt les lignes du tableau BIEF.

Si dans une ligne on trouve un (ou plusieurs) bief(s) aval de maille, on le (ou les) retient dans une liste RANGE.

Puis on ajoute à cette liste les valeurs absolues de tous les biefs négatifs de la ligne.

On regroupe toutes les lignes répondant au critère en tête du tableau BIEF pour pouvoir appliquer sur les lignes suivantes la deuxième étape.

Situation en fin de première étape :

NOEUDBIEF
Ligne 1DC236-2Ligne 2FC15-4Ligne 3DC124

Soit le problème est résolu (comme ici), soit il reste des biefs. Dans ce dernier cas on procède à la deuxième étape.

Deuxième étape : on parcourt les lignes restantes du tableau BIEF.

Si dans une ligne on trouve un bief positif qui appartient déjà à la liste RANGE, on rajoute à cette liste les valeurs absolues de tous les biefs négatifs de la ligne. Cette ligne est éliminée et rejoint celles de la première étape. On procède à la deuxième étape pour chaque ligne restante jusqu’à ce que tous les biefs aient été récupérés.

La liste RANGE contient l’ordre inverse du rangement des biefs dans le vecteur des inconnues.

Liste RANGE :
36254 Biefs54321 Colonnes correspondantes dans les blocs
la maille contient 5 biefs(lignes dans le vecteur des inconnues)