Question

Je suis sur le point de mettre en œuvre un algorithme de calcul d'une incorporation plane.

J'ai commencé à vérifier mes résultats en fonctionnant contre un ensemble de graphiques ( rome graphiques ) et comparer mes résultats aux résultats d'une autre implémentation (Yfiles). Cependant, je ne peux vérifier que si la réponse planaire / non plane est égale, car pour un graphe plane donné, il peut exister de nombreux embarquements différents.

Comment puis-je vérifier que l'encrassement que j'ai calculé (commande dans les listes de adjacence) est une incorporation plane correcte?

J'ai déjà découvert certains cas où je reçois probablement une mauvaise introduction. Pour les graphiques échoués, le dessin habituellement, les intégres deviennent durs manuellement. J'ai trouvé que le Boost Docs état qui donnait Tout graphique, on peut produire un dessin plan d'un graphique, qui certifiera que le graphique est plane et le certificat de planarité est facile à vérifier. Mais je ne suis pas sûr que je ne peux pas créer si / comment créer un tel dessin d'une manière algorithmique impressionnante à partir des listes de adjacence commandées.

(BTW. Voici mon )

Était-ce utile?

La solution

La manière la plus simple que je connaisse consiste à calculer un arbre étendu arbitraire, puis vérifiez que les bords restants n'ont pas de cycles dans le double graphique.Si DNEXT (E) plante une demi-bordure E avec la tête V sur la demi-bord suivante dans le sens inverse des aiguilles d'une montre avec la tête V, et SYM (E) est le demi-bord opposé à E, puis rprev (e)= sym (dnext(e)) est le demi-bord suivant dans le sens des aiguilles d'une montre avec la même face droite.J'ai mis en place cette approche à l'algorithme.java d'un projet à mitie: http://www.davideisenstat.com/ruisseler /

Alternativement, vous pouvez utiliser des caractéristiques d'Euler.Étiquetez les sommets (= cycles de la permutation DNEXT) et faces (= cycles de la permutation RPRV) et déterminez le nombre de composants connectés.Vérifiez que (V - C) + (F - C)= E.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top