• Aucun résultat trouvé

Performances et perspectives

utilisant la notion de site inachev5e

7.4. R ESUL T A TS EXP ERIMENT AUX ET ANAL YSE

7.4.5 Performances et perspectives

Disposant pendant quelques jours d'une Silicon Graphics Indy N200 MHz, 60 MOO, nous en avons proYt$e pour tester l'algorithme bas$e sur le 2d-arbre. Apr:es une phase de tri de 3 secondes, la triangulation d'un semis de 200 000 points s'est eMectu$ee en 7 secondes. La vitesse de triangulation Nen excluant le temps consacr$e au triO est de l'ordre de 30 000 points par seconde Nenviron 50 000 :a 60 000 triangles par secondeO. Pour des semis de taille moyenne Nmoins de 30 000 pointsO, on peut consid$erer que la triangulation s'eMectue en temps r$eel. A l'aide des graphiques pr$ec$edents, on peut ex- trapoler avec quasi-certitude que l'algorithme fond$e sur le quadtree triangulera 200 000 points en 8 secondes environ Npr$etraitement comprisO, quelle que soit la distribution. L'optimisation de G.Leach Npara. 7.4.4O devrait permettre de s'approcher des 5 se- condes pour 200 000 points!

Il y a quelques ann$ees, on consid$erait que la triangulation $etait une op$eration longue Nil $etait classique de la lancer le soir pour avoir le r$esultat le lendemain matinO. Maintenant, gr^ace :a l'$evolution des machines et des algorithmes, la fa^con de travailler change. Pour des semis d'une centaine de milliers de points, il est inutile de stocker la triangulation sur disque. En eMet, le temps n$ecessaire pour la relire :a partir du disque est plus important que le temps n$ecessaire pour la recalculer. La triangulation

de Delaunay en temps interactif 0pour des simulateurs de vol par exemple4 n'est plus un objectif irr8ealisable.

Il y a quelques ann8ees, l'objectif du million de triangles >a la seconde avait 8et8e ?x8e. Nous sommes encore loin de cette performance qui 8etait compl>etement utopique >a l'8epoque. Mais, compte tenu des progr>es constants et rapides dans la vitesse des processeurs, il n'est pas exclu que, dans quelques ann8ees, cet objectif soit atteint.

7.5 Conclusion

L'algorithme bas8e sur le quadtree est remarquablement performant. On peut cepen- dant lui reprocher une certaine instabilit8e en ce qui concerne l'espace m8emoire utilis8e 0surtout pour des ensembles de moins de mille points4. Il est tr>es peu perturb8e par l'h8et8erog8en8eit8e de la distribution. Il est toujours le meilleur d>es que la distribution n'est pas parfaitement uniforme. Il est battu par le bucket-tree, mais de faGcon in?me, pour une distribution uniforme. Ensuite, se placent les algorithmes bas8es sur les 2d- trees. Ils pr8esentent l'avantage de minimiser l'espace m8emoire que l'on peut calculer avec pr8ecision avant de lancer la triangulation et d'^etre peu sensibles >a l'h8et8erog8en8eit8e de la distribution. Les versions randomis8ees sont un peu plus rapides, parce que le temps de construction de l'arbre est plus faible. Les algorithmes de Dwyer et de Lee et Schachter sont globalement moins bons, Lee et Schachter parce que la triangulation s'eMectue toujours en N0nlogn4, Dwyer parce qu'il s'adapte moins bien aux distri-

butions non uniformes et que, m^eme sur ces distributions, l'algorithme dirig8e par le bucket-tree le surpasse.

L'IMPRECISION NUMERIQUE

To err is human, but to really foul things up, you need a computer."

Il s'agit l(a d'un des probl(emes les plus cruciaux en G5eom5etrie Algorithmique, et aussi l'un des principaux enjeux des prochaines ann5ees ;<46? chap. 10C. Comme les structures g5eom5etriques construites par les algorithmes d5ependent de tests num5eriques, les probl(emes de pr5ecision ont une importance capitale en G5eom5etrieAlgorithmique. Ils sont en g5en5eral imputables (a la troncature des nombres par la machine. Le codage des r5eels sur machine est r5ealis5e sur un nombre Fni de bits ;unit5e binaires d'informationC et le nombrede valeurs diI5erentes que peut prendre une variable est donc Fni ;une variable cod5ee sur b bits peut prendre 2

b valeurs diI5erentesC. Cela est bien s^ur insuLsant

pour pouvoir d5ecrire exactement l'ensemble des r5eels ou des rationnels, m^eme sur un intervalle born5e donn5e. Sauf les cas discrets o(u la variable vaut exactement la valeur souhait5ee, cette variable approche cette valeur avec une erreur dont la valeur maximale est l'erreur machine.

Les approximations qu'impliquent les calculs Nqui ne tombent pas rond" au sens de la machine engendrent des erreurs num5eriques qui sont ampliF5ees au fur et (a mesure de l'encha^Pnementdes op5erations. Ces erreurs restent souvent n5egligeables dans la plupart des applications o(u seule la vision Ncalcul num5erique" est consid5er5ee, gr^ace (a une Ncontinuit5e" du comportement qui fait qu'une erreur minime en entr5ee provoque une erreur minime en sortie. Mais, ce n'est g5en5eralement pas le cas en g5eom5etrie algorithmique ;et m^eme en analyse num5eriqueC.

On est souvent amen5e(a faire des alternatives sur des crit(eresnum5eriquesrepr5esen- tatifs de la g5eom5etrie des donn5ees. Par exemple, entre un point et une droite, on cherche (a savoir si le point est dessus, dessous ou sur la droite. Ces alternatives cr5eent

des #discontinuit*es" dans le comportement de l'algorithme qui, si par malheur l'erreur fait passer d'un c^ot*e 8a l'autre, donnera au programme une r*eponse totalement inadap- t*ee. En particulier, le test d'*egalit*e stricte risque de g*en*erer des r*eponses souvent hasardeuses. Un point peut aussi ^etre d*eclar*e int*erieur ou ext*erieur 8a une r*egion, par simple changement du contexte dans lequel les calculs sont e?ectu*es @dynamique des donn*ees1, rotation, nombre de bits dans les calculs,...B.

Par exemple, l'algorithme de Bentley et Ottman G19J, qui permet de trouver les points d'intersection entre n segments par un balayage du plan, est tr8es sensible 8a

l'impr*ecision num*erique qui conduit souvent l'algorithme 8a donner des r*esultats erron*es ou m^eme 8a s'arr^eter avant la Kn des calculs @voir deux exemples d*etaill*es dans la th8ese de Michelucci G144JB. Les algorithmes de triangulation de Delaunay bas*es sur une m*ethodologie #Divide-and-Conquer" sont aussi sensibles, de faQcon moins signiKcative, 8a l'impr*ecision num*erique. Les exemples des paragraphes 8.2.1 et 8.2.2 l'illustrent.

Bien que beaucoup de travaux aient *et*e publi*es dans ce domaine, aucune solu- tion, 8a ce jour, n'allie 8a la fois vitesse et Kabilit*e. Ce chapitre pr*esente un rapide *etat de l'art sur ce sujet, qui constitue 8a lui seul mati8ere 8a plusieurs th8eses. Puis deux exemples illustrant les e?ets de l'impr*ecision num*erique sur notre algorithme de triangulation de Delaunay, sont donn*es et enKn un rem8ede, propre 8a notre application de CAO routi8ere, est propos*e.

8.1 Etat de l'art 8.1.1 Epsilons

Une approche intuitive, utilis*ee dans la quasi-totalit*e des logiciels de CAO, consiste 8a introduire des marges de tol*erance. Par exemple,chaque sommetappartient 8a un disque de rayon epsilon, chaque segment appartient 8a une bande de largeur 2 epsilons...Mais le choix de la valeur de epsilon est d*elicat et il n'est jamais possible d'en pr*evoir les cons*equences. En fait, cette m*ethode ne peut pas conduire 8a une solution parfaitement Kable, elle n'est ni robuste, ni scientiKque et ne peut fonctionner que si l'on adapte !8a

la dynamique des donn*ees.

On peut citer les m*ethodes: epsilon brut @pr*esent*e ci-dessusB, taille d'attributs minimum G179J, epsilon-convexit*e G149J, g*eom*etrie 8a epsilon pr8es G103J...

1La dynamique d'un jeu de donn-ees est le rapport entre les plus grandes et les plus petites distances signi5catives.