Avertissement: je ne suis pas un théoricien CS.
Issu de l'algèbre abstraite, j'ai l'habitude de traiter des choses qui sont égales à un isomorphisme - mais j'ai du mal à traduire ce concept en structures de données. J'ai d'abord pensé que des morphismes bijectifs théoriques définis suffisaient, mais je suis tombé sur un mur assez rapidement - ce ne sont que des encodages et ne capturent pas l'essence informatique de la structure des données.
Existe-t-il une définition plus restrictive (mais plus utile)? (Ou sinon, pourquoi?) Existe-t-il une définition canonique de la catégorie des "structures de données construites"?
Plutôt que de demander comment nous pouvons renforcer / affaiblir la notion d'isomorphisme, une autre possibilité consiste à se demander: quelle est la bonne notion d'équivalence entre les structures de calcul et quelle est la structure mathématique sous-jacente à cette notion.
Une grande famille de structures est constituée de houillères. Des structures telles que des listes, des arbres, des automates, à la fois de la variété finie et infinie, peuvent être décrites comme des houillères. On peut alors étudier l'homomorphisme ou l'isomorphisme entre les houillères.
Cependant, même les homomorphismes entre les houillères ne racontent pas toute l'histoire. Il peut être utile de rechercher des simulations, des bisimulations et d'autres relations logiques. Si vous préférez strictement une approche algébrique (par opposition à une approche relationnelle), les connexions Galois sont une option. Voici quelques points de départ.
la source
Avertissement: je ne suis pas sûr d'avoir compris votre question. Voulez-vous parler d'isomorphisme entre deux structures de données, ou entre deux "spécifications de structure de données"? (Ils sont parfois appelés types de données abstraits.)
Si vous considérez le modèle de sonde cellulaire, je pense qu'un concept d'isomorphisme apparaît facilement. En effet, le modèle de sonde cellulaire modélise le calcul par un arbre de décision, l'isomorphisme est donc facile à définir. Le modèle de sonde cellulaire aiderait, je pense, à la fois si vous considérez l'isomorphisme entre les implémentations de structure de données et si vous considérez les spécifications de structure de données.
Pour plus d'informations sur le modèle de sonde cellulaire, voir par exemple l'enquête de Miltersen. ( Complexité de la sonde cellulaire: enquête )
Si vous en dites plus sur les raisons pour lesquelles vous devez définir l'isomorphisme entre les structures de données, il pourrait être possible de fournir plus d'aide. N'hésitez pas à m'envoyer un message.
la source