J'ai récemment découvert une borne inférieure quadratique sur la complexité d'un problème dans le modèle d'arbre de décision, et je me demande si ce résultat pourrait être partiellement généralisé au modèle de machine à accès aléatoire. Par partiellement , je veux dire une généralisation aux programmes RAM avec un certain compromis temps / espace. Par exemple, je voudrais montrer que mon problème ne peut pas être résolu par un programme RAM à temps et espace linéaire.
AM Ben-Amram et Z. Galil ont prouvé dans cet article qu'un programme RAM fonctionnant dans le temps et dans l'espace s peut être simulé en O ( t temps sur une machine à pointeur. Connaissons-nous des résultats similaires qui pourraient être appliqués aux arbres de décision?
Alternativement, est-il possible de simuler un programme RAM fonctionnant dans l'espace avec un arbre de décision de degré s ? (intuitivement, l'adressage indirect pourrait être simulé en utilisant des nœuds de degré ≤ s )
Réponses:
Le modèle naturel lié aux arbres de décision pouvant simuler des RAM est le programme de branchement. Fondamentalement, il s'agit d'un arbre de décision avec des sous-arbres communs fusionnés donnant un DAG. Le temps T et l'espace S sur une RAM peuvent être simulés en hauteur T et en taille 2 ^ S sur un programme de branchement. (Vous devrez peut-être utiliser une ramification multidirectionnelle.)
Pour les problèmes de décision, il est clair que tout arbre de décision n'a besoin que de hauteur = # entrées et d'espace = nombre total de bits dans l'entrée. Notez qu'avec une ramification multidirectionnelle, le nombre de bits dans l'entrée peut être supérieur à la mesure habituelle du nombre d'entrées (par exemple, n pointeurs prenant chacun log n bits). Pour de tels problèmes avec nlog n total des bits d'entrée, on peut prouver que certains problèmes ne peuvent pas être résolus en temps O (n) et espace = O (n) bits. Est-ce la forme de votre problème?
Vous semblez suggérer que vous utilisez le nombre de sorties pour essayer d'obtenir une limite inférieure plus grande. Il est habituel que les problèmes à sorties multiples autorisent de nombreuses sorties le long d'un seul bord plutôt qu'aux nœuds feuilles (voir, par exemple, l'article de Borodin-Cook de 1982 sur le tri des bornes inférieures). Cependant, même sans cette hypothèse, on peut également calculer n'importe quelle fonction avec hauteur = # entrées et espace = # bits d'entrée. (Lisez et souvenez-vous de l'entrée et sortez toutes les valeurs à chaque nœud feuille.)
la source
Le modèle naturel lié aux arbres de décision qui simule les RAM sans perte est le programme de branchement. Fondamentalement, il s'agit d'un arbre de décision avec des sous-arbres communs fusionnés donnant un DAG. Le temps T et l'espace S sur une RAM peuvent être simulés en hauteur T et en taille 2 ^ S sur un programme de branchement. (Vous devrez peut-être utiliser une ramification multidirectionnelle.)
Pour les problèmes de décision, il est clair que tout arbre de décision n'a besoin que de hauteur = # entrées et d'espace = nombre total de bits dans l'entrée. Notez qu'avec une ramification multidirectionnelle, le nombre de bits dans l'entrée peut être plus grand que la mesure habituelle du nombre d'entrées (par exemple, n pointeurs prenant chacun log n bits). Pour de tels problèmes avec nlog n total des bits d'entrée, on peut prouver que certains problèmes ne peuvent pas être résolus en temps O (n) et espace = O (n) bits sur une RAM.) Est-ce la forme de votre problème?
Vous semblez suggérer que vous utilisez le nombre de sorties pour essayer d'obtenir une limite inférieure plus grande. Cependant, même avec cela, vous pouvez également calculer n'importe quelle fonction avec hauteur = # entrées et espace = # bits d'entrée. (Lisez et souvenez-vous de l'entrée et sortez toutes les valeurs requises à chaque nœud feuille. Il est habituel d'autoriser plusieurs sorties à un seul nœud.)
la source