Cette question s'inspire d' une autre question sur les nouveautés du PFDS depuis la publication du livre d'Okasaki en 1998 .
Je vais commencer par deux questions que j'ai:
- Existe-t-il une structure de données d'ensemble purement fonctionnelle qui approche la vitesse des tables de hachage? Les essais ne sont pas encore là.
- Existe-t-il des doigts purement fonctionnels avec O (1) append? Le meilleur à ce jour est O (lg lg n), conçu par Kaplan et Tarjan.
Quels autres problèmes de structure de données purement fonctionnels sont ouverts?
Réponses:
Je vais interpréter la question un peu libéralement. Pour les structures de données de style Okasaki, la mémorisation est une forme de mutation implicite qui a un effet secondaire sur le temps d'exécution. Je poserai donc la question concernant les structures de données persistantes au sens strict plutôt que les structures de données avec une implémentation purement fonctionnelle, qui sont un sous-ensemble de la précédente. Par strict, je veux dire que vous devriez pouvoir accéder aux anciennes versions d’une structure de données sans pénalité, l’arbre des versions peut se ramifier de façon arbitraire, etc.
Dans ce contexte, je considère que la persistance d'UNION-FIND est un problème ouvert important. Il y a le papier Conchon-Filliâtre qui a été mentionné dans l'autre fil. Un intervenant a déjà évoqué un problème avec son tableau dit persistant: il n’est vraiment que semi-persistant. Mais supposons que vous le remplaciez par une table de hachage ou un autre tableau véritablement persistant qui se comporte mieux dans le pire des cas (et sans doute moyen,), mais pire dans le meilleur des cas. Cela laisse encore un problème important en suspens:
Le papier donne une preuve formelle de la correction en Coq. Mais ils ne parviennent pas à traiter la complexité amortie de manière formelle ou informelle. Il est très bien pas clair pour moi que le complexe derrière les coulisses mutation entraîne la complexité amortie attendue dans tous les cas. La dernière fois que j'ai réfléchi à la question, je me sentais un peu confiant de pouvoir construire un contre-exemple si je mettais des efforts à faire. Même si je me trompe à propos de cette dernière partie, l’absence d’une analyse appropriée est une lacune majeure; Il est clair que l'analyse classique de l'amortissement de UNION-FIND par Trajan n'est pas transférée directement.
la source
En voici un:
Quel est l'équivalent purement fonctionnel d'une table de hachage faible?
la source