Pourquoi les automates linéaires bornés ne sont-ils pas aussi populaires que les autres automates?


9

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?



Pourriez-vous expliquer comment la question liée se rapporte, Kaveh? (Parce que je ne pense pas que son ton soit utile ici, mais des réponses individuelles peuvent l'être)
Raphael

2
@Raphael: Les réponses à la question que Kaveh a liées pour expliquer pourquoi les langages contextuels ne sont pas considérés comme aussi importants qu'auparavant: en bref, il existe d'autres modèles plus intéressants à considérer. (plus)
Tsuyoshi Ito

2
(suite) La même raison s'applique aux «automates bornés linéaires». C'est drôle que je n'avais jamais entendu parler de ce nom. Pour moi, ce ne sont que des machines de Turing déterministes / non déterministes à O (n) espace, et je ne vois pas pourquoi nous devrions distinguer celles à O (n) -espaces (au lieu de l'espace polynomial ou O (log n) -espace ou autre), bien qu'il devait y avoir une raison historique. De plus, ni la classe DSPACE (O (n)) ni NSPACE (O (n)) n'est fermée lors d'appels de sous-programme .
Tsuyoshi Ito du

1
Tsuyoshi, mon interprétation de la question est que FA, PDA et le reste de la Hiérarchie Chomsky (par votre / le raisonnement des réponses également ennuyeux) sont enseignés, mais pas LBA.
Raphael

Réponses:


13

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.


1
transformer un LBA en PSPACE sonne presque comme un espace linéaire est tout ce dont vous avez besoin pour capturer PSPACE qui ne peut clairement pas être vrai. Alors, quelle est mon erreur de réflexion?
Suresh Venkat

2
@Suresh: Il existe les connexions suivantes. La classe de problèmes qui sont (NC1-) réductibles aux langues régulières est NC1, la classe de problèmes (log-space-) réductible à CFL est LogCFL, et la classe de problèmes (NC1- ou log-space-) réductible à LBA est PSPACE. Je ne sais pas si nous pouvons utiliser la même notion de réductibilité dans ces trois cas.
Tsuyoshi Ito du

AC0

3

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.

NLBA=DLBA

(*) exagération délibérée


2

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.


1
Je souhaite que tu sois universellement vrai! Le cours d'introduction sur TCS enseigné dans mon univ est à moitié automates / CFL. Je suis TA-ing cette classe, et les étudiants semblent vraiment loin d'être intéressés. C'est peut-être une autre raison pour laquelle CFL / CSL ne sont plus présentés: il y a des sujets qui sont beaucoup plus passionnants.
Michaël Cadilhac

1
Eh bien, la théorie CS n'est pas seulement la complexité. En particulier, CFG ainsi que les modèles d'automates associés sont très importants (au moins en tant que fondations) dans de nombreuses branches de CS. Un cours d'introduction devrait vous préparer à toutes les branches. Désolé, mais cette réponse sent l'ignorance. De plus, cela ne répond pas à la question.
Raphael

@Raphael, je parle des cours de théorie de la calculabilité / complexité , c'est là que la théorie des automates est pensée dans les universités que je connais en ce moment. Personne n'a rien dit sur les cours théoriques en général. Je pense que vous devriez lire attentivement les articles avant d'accuser les autres d'ignorance. Mon article répond à la question: pourquoi le LBA n'est pas pensé dans les cours de théorie de la calculabilité / complexité? C'est la raison, et c'est la raison pour laquelle les manuels de théorie de la calculabilité et de la complexité n'incluent pas beaucoup de choses sur LBA, que cela vous plaise ou non.
Kaveh

Vous êtes donc privé des raisons personnelles de chaque auteur et conférencier dans le monde entier? Ouai, bien sur. Quoi qu'il en soit, veuillez noter que le mot "complexité" n'apparaît pas du tout dans la question affichée. Notez également que par le commentaire de la surprise ci-dessus et l'édition, vous n'avez pas répondu à la question. Fait, que cela vous plaise ou non.
Raphael

1
@Raphael, vous ne lisez toujours pas attentivement et continuez d'interpréter ce que j'écris comme vous préférez, il me semble que vous voulez juste discuter, je pense que mon point est assez clair, donc n'hésitez pas à penser comme vous le souhaitez. :)
Kaveh

2

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!


Étant donné que les LBA sont équivalents à la classe tout à fait naturelle des grammaires contextuelles, je ne pense pas qu'elles aient été inventées juste pour le plaisir. ;)
Raphael

@Raphael: Yuval n'a pas du tout laissé entendre cela.
reinierpost
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.