Contexte
Un arbre de décision binaire est un arbre enraciné où chaque nœud interne (et racine) est étiqueté par un index sorte qu'aucun chemin de la racine à la feuille ne répète un index, les feuilles sont étiquetés par des sorties dans , et chaque bord est étiqueté par pour l'enfant gauche et pour l'enfant droit. Pour appliquer un arbre à une entrée :{ A , B } 0 1 x
- Commencez à la racine
- si vous êtes à leaf, vous sortez le label leaf ou et vous terminezB
- Lisez l'étiquette de votre nœud actuel, si déplacez-vous vers l'enfant de gauche et si déplacez-vous vers l'enfant de droite.x j = 0 x j = 1
- passer à l'étape (2)
L'arbre est utilisé comme un moyen d'évaluer une fonction, en particulier on dit qu'un arbre représente une fonction totale si pour chaque on a . La complexité de requête d'un arbre est sa profondeur, et la complexité de requête d'une fonction est la profondeur du plus petit arbre qui la représente.f x ∈ { 0 , 1 } n T ( x ) = f ( x )
Problème
Étant donné un arbre de décision binaire T, un arbre de décision binaire T 'de profondeur minimale telle que T et T' représente la même fonction.
Question
Quel est l'algorithme le plus connu pour cela? Des limites inférieures sont-elles connues? Et si nous savons que la ? Qu'en est-il si nous exigeons seulement que soit d'une profondeur approximativement minimale?
Approche naïve
L'approche naïve est donnée pour énumérer récursive tous les arbres de décision binaires de profondeur tout en testant si elles évaluent à la même chose que . Cela semble nécessiter étapes (en supposant qu'il fautdétapes pour vérifier ce queT(x)évalue pour unxarbitraire). Est-ce qu'il y a une meilleure approche?
Motivation
Cette question est motivée par une question précédente sur le compromis entre la complexité des requêtes et la complexité temporelle . En particulier, l'objectif est de limiter la séparation temporelle pour les fonctions totales. On peut faire un arbre partir d'un algorithme optimal dans le temps avec le temps d'exécution t , puis on voudrait le convertir en arbre T ' pour un algorithme optimal de requête. Malheureusement, si t ∈ O ( n ! / ( N - d ) ! ) (Et souvent d ∈ Θ ( n )) le goulot d'étranglement est la conversion. Ce serait bien si nous pouvions remplacer par quelque chose comme 2 d .
la source
Réponses:
J'ai 3 réponses, donnant toutes des résultats de dureté quelque peu différents.
Soit une fonction.F: { 0 , 1 }n→ { 0 , 1 }
Réponse 1
Etant donné un arbre de décision calculant f et un nombre, il est NP-difficile de dire s'il existe un arbre de décision T ' calculant f de taille au plus égale à ce nombre.T F T′ F ( Zantema et Bodlaender '00 )
Réponse 2
Étant donné un arbre de décision calculant f , il est difficile pour NP d'approximer le plus petit arbre de décision calculant f à un facteur constant.T F F ( Sieling '08 )
Réponse 3
Soit la taille du plus petit arbre de décision calcul f . Étant donné un arbre de décision T calculant f , en supposant N P ⊊ D T I M E ( 2 n ϵ ) pour certains ϵ < 1 , on ne peut pas trouver un arbre de décision équivalent T ′ de taille s k pour tout k ≥ 0 .s F T F NP⊊ D TjeME( 2nϵ) ϵ < 1 T′ sk k≥0
Je pense que cette réponse plus forte (reposant sur une hypothèse plus faible) peut être faite à partir de résultats connus dans la théorie d'apprentissage des algorithmes d'Occam pour les arbres de décision, via l'argument suivant:
Ces deux résultats semblent impliquer un résultat de dureté pour votre problème. D'une part (1), nous pouvons trouver un grand arbre de décision; d'autre part (2), nous ne devrions pas pouvoir le minimiser pour en obtenir un "petit" équivalent, de taille , même lorsqu'il existe de taille s .sk s
la source