J'ai un ensemble d'éléments, par exemple: {1,1,1,2,2,3,3,3}, et un ensemble d'ensembles restrictif, par exemple {{3}, { 1,2}, {1,2,3}, {1,2,3}, {1,2,3}, {1,2,3}, {2,3}, {2,3}. Je cherche des permutations d'éléments, mais le premier élément doit être 3, et le second doit être 1 ou 2, etc.Permutations avec restrictions supplémentaires
Une telle permutation qui correspond est: {3,1,1,1,2, 2,3}
Existe-t-il un algorithme pour compter toutes les permutations pour ce problème en général? Y a-t-il un nom pour ce type de problème?
Par exemple, je sais comment résoudre ce problème pour certains types de "jeux de restriction". Ensemble d'items: {1,1,2,2,3}, Restrictions {{1,2}, {1,2,3}, {1,2,3}, {1,2}, {1, 2}}. C'est égal à 2!/(2-1)!/1! * 4!/2!/2 !. Permuter efficacement les 3 premiers, puisque c'est le plus restrictif puis permuter les éléments restants où il y a de la place.
Aussi ... temps polynomial. Est-ce possible?
MISE À JOUR: Ceci est discuté plus loin dans les liens ci-dessous. Le problème ci-dessus est appelé "comptage des appariements parfaits" et chaque restriction de permutation ci-dessus est représentée par un {0,1} sur une matrice de fentes aux occupants.
- https://math.stackexchange.com/questions/519056/does-a-matrix-represent-a-bijection
- https://math.stackexchange.com/questions/509563/counting-permutations-with-additional-restrictions
- https://math.stackexchange.com/questions/800977/parking-cars-and-vans-into-car-van-and-car-van-parking-spots
Cherchez-vous seulement un nombre, ou êtes-vous intéressé par un algorithme qui pourrait également potentiellement imprimer les permutations? En tout cas, quel doit être son efficacité? – IVlad
Votre question me semble très intéressante mais je ne la comprends pas complètement. – Amichai
Un compte serait bien. Parce que je peux appliquer récursivement l'algorithme de comptage pour marcher ou accéder de façon aléatoire à la n-ième permutation si besoin est. L'algorithme/méthode d'analyse devrait être en temps polynomial, pas l'évidence "marcher toutes les permutations et frapper ceux qui ne correspondent pas à la règle" algorithme. Bonne question. Une équation est aussi bonne qu'un algorithme pour moi. Des références à des méthodes analytiques similaires ou à des publications académiques pourraient également m'aider. –