Quand l'élagage cesse-t-il d'être efficace dans une recherche en profondeur? J'ai travaillé sur une méthode efficace pour résoudre le problème N-Queens et je regarde la taille pour la première fois. Je l'ai implémenté pour les deux premières lignes, mais quand est-ce que ça cesse d'être efficace? Jusqu'où dois-je tailler?Taille: quand arrêter?
Répondre
Le problème N-Queens est typiquement récursif. La mise en œuvre de l'élagage à une profondeur devrait signifier la mise en œuvre à n'importe quelle profondeur. La réponse dépend du type d'élagage que vous faites. Si vous élaguez pour des mouvements symétriques, il ne vaut pas la peine d'élaguer lorsque le coût de la vérification est supérieur au coût d'évaluation d'une branche entière multiplié par la probabilité que la branche soit symétrique. Pour le problème des N-Queens, la symétrie n'est probablement pas une méthode d'élagage très fructueuse après les deux premières rangées.
Une fois, j'ai vu une citation à ce sujet: «Taillez tôt, taillez souvent». Et un autre, "Ne fais rien de stupide, ne fais rien deux fois."
Je pense que le montant de la taille que vous faites doit être déterminée par vos objectifs pour le problème, ou vos limites sur N.
- 1. Comment arrêter Maven quand JUnit échoue?
- 2. td taille n'augmente pas quand j'augmente la taille de l'image
- 3. Quand arrêter UIViewController de recevoir des appels de délégué
- 4. Comment arrêter le swf quand une erreur se produit
- 5. comment arrêter repeindre d'un widget quand il est redimensionnée
- 6. Delphi: Comment savoir quand un TEdit change de taille?
- 7. Comment savoir quand mon contrôle change de taille?
- 8. Je dois savoir quand un VerticalPanel change de taille
- 9. Comment quitter/arrêter/terminer/arrêter/arrêter un processus MSBuild?
- 10. Arrêter la boucle flv
- 11. Arrêter une opération sans arrêter le module en python
- 12. Powershell provoque un: chercher quand il commence; comment puis-je arrêter cela?
- 13. IPhone sdk arrêter l'accéléromètre de travailler quand quelque chose se passe
- 14. Arrêter iAd de charger des bannières, quand je change la vue
- 15. Comment arrêter jQuery affecter tous les éléments, quand je veux qu'un seul élément pour changer
- 16. Essayer d'obtenir un UIImageView pour arrêter de bouger quand il atteint les limites de l'écran ... aide!
- 17. Comment puis-je arrêter toutes les couleurs étant détruites quand je change normal
- 18. En utilisant gdb arrêter le programme quand il utilise une fonction du fichier X
- 19. Compact Framework 2.0: Comment arrêter un thread quand un objet est éliminé?
- 20. Arrêter l'exécution du script python quand script shell Bash parent est tué
- 21. Comment arrêter les services wcf en cours dans silverlight quand l'exception se produit
- 22. comment puis-je arrêter une page php de chargement quand il prend trop longtemps
- 23. Comment arrêter de joindre UITableView au dessus
- 24. comment arrêter "ne peut pas arrêter" s'appuie sur TeamCity
- 25. Voir Taille de l'image Taille = 0
- 26. comment arrêter événement timer jquery
- 27. Comment arrêter Databasemail d'exécuter
- 28. fichier Arrêter SWF de répéter
- 29. Arrêter les contrôles d'être peints
- 30. Comment arrêter setNeedsDisplayInRect/drawRect coalescence?
Je pense que vous devez décrire votre algorithme plus en détail. Je ne suis pas sûr de ce que tu veux dire par tailler. Il ne cesse jamais d'être efficace pour rejeter des chemins qui, à coup sûr, conduiront à une impasse. – IVlad