D'après mon expérience, les langages contextuels et les automates linéaires bornés sont souvent ignorés ou ignorés dans les cours de théorie de la calculabilité, et sont même exclus de certains manuels remarquables, bien que les automates finis et déroulants reçoivent beaucoup d'attention. Il doit sûrement y avoir une bonne raison pour laquelle les LBA se concentrent moins que leurs homologues?
9
Réponses:
Avec des modifications "appropriées", nous pouvons transformer ces classes en classes de complexité; Automates finis en , CFL en LogCFL et LBA en PSPACE.NC1
Il devrait maintenant être très clair pourquoi nous sommes plus intéressés par les deux premiers que LBA. Les deux premiers s'inscrivent naturellement dans la définition habituelle du calcul réalisable. Mais PSPACE ne le fait pas.
la source
Eh bien, demandez à votre professeur pourquoi il l'a fait. Je ne peux que deviner.
Ils ne sont pas aussi intéressants que les modèles complets de Turing et les PDA car ils sont dans le vide inutile * qu'ils partagent, bien sûr, avec leur équivalent linguistique: pas aussi puissant que possible, mais déjà très intraitable.
Une autre raison pourrait être que l'on n'en sait pas autant (deviner ici), mais cela pourrait se résumer à un problème d'oeufs de poule.
(*) exagération délibérée
la source
Il semble que non seulement CSG mais aussi CFG, ... soient démodés de nos jours. Je pense que de nos jours, les automates et les PDA sont généralement pensés dans les cours de théorie de la calculabilité / complexité (le cas échéant) et là, ils sont inclus non pas pour leur propre intérêt mais pour présenter les machines de Turing.
Les grammaires sont probablement intéressantes pour la théorie du compilateur, mais pas tant pour la calculabilité / complexité à inclure dans un cours d'introduction au premier cycle. Il y a trop de sujets que l'on aimerait couvrir, mais un cours d'un semestre est tout simplement trop court et nous devons sélectionner et beaucoup de ces sujets que nous ne pouvons pas couvrir en raison de contraintes de temps sont bien plus intéressants que LBA.
la source
Les expressions régulières et les CFG sont utilisés dans la pratique pour analyser le code (c'est-à-dire les langages de programmation). La raison en est qu'il existe des algorithmes très efficaces pour les analyser. Les LBA, en revanche, sont trop puissants pour être réellement utilisés dans ce contexte.
Une origine historique de la théorie des automates est le sujet de la construction du compilateur. Pour la raison mentionnée ci-dessus, seuls les langages réguliers et les CFG sont utiles pour construire des compilateurs (malgré le fait que les grammaires attributives ne sont pas vraiment des CFG, et que les algorithmes d'analyse CFG n'analysent pas vraiment toute la classe des CFG). Les LBA pourraient avoir été inventés par Chomsky comme un niveau intermédiaire de complexité entre le banal et "l'anglais". Alors peut-être que le bon endroit pour les enseigner est dans les cours de linguistique plutôt que dans les cours d'informatique!
la source