J'ai une soupe polygonale de triangles pour laquelle j'aimerais construire un arbre BSP. Mon programme actuel construit simplement un arbre BSP en insérant un triangle aléatoire du modèle un à la fois jusqu'à ce que tous les triangles soient consommés, puis il vérifie la profondeur et la largeur de l'arbre et se souvient du meilleur score obtenu (profondeur la plus basse, largeur la plus faible). Par définition, la meilleure profondeur serait log2 (n) (ou moins si les triangles coplanaires sont groupés?) Où n est le nombre de triangles dans mon modèle, et la meilleure largeur serait n (ce qui signifie ne pas diviser s'est produit). Mais, il y a certaines configurations de triangles pour lesquelles ce pinacle ne serait jamais atteint.Comment tester si un arbre BSP donné est optimal?
Existe-t-il un test efficace pour vérifier la qualité de mon arbre BSP? Plus précisément, j'essaie de trouver un moyen pour mon programme de savoir qu'il devrait cesser de chercher une construction plus optimale.
En général, tester si une solution est optimale et trouver une solution optimale ne doit pas appartenir à la même classe de complexité. Savez-vous peut-être une référence que vérifier si un arbre BSP est optimal est NP-complet? – axel22