 Merci pour l'invitation. Comme Paul a parlé un peu, je vais parler de la composition des machines. Je vais parler des traductions transversibles. Je vais essayer de vous donner l'intuition sur tout le travail, mais essayer d'être informaux. C'est un travail joint avec Paul Infournier, Ismaël Jacker, qui est là-bas, et Nathan Lott. Je vais parler des traductions transversibles, et Gabrielle a fait une très belle introduction sur tout, mais je vais définir cela, surtout parce que je ne savais pas que Gabrielle m'allait parler de cela, mais ça serait bien de me donner ma position, parce que certaines choses sont différentes. La première chose est des traductions transversibles. Vous savez tout au long de l'automate, et vous savez qu'il y a des traductions transversibles. Tous les traductions sont équipées avec la production, et le rang de l'automate est la même que le rang de l'utilisateur. C'est la même chose que le rang de l'automate. Vous allez lire votre input ici, qui est la partie gauche de la transition, et puis vous produisiez la partie à l'automate, et puis au long de l'automate, vous concateniez la production et vous vous donnez un point à l'automate. Donc ici, vous commencez en state 1, vous read un B, vous produisiez un B, et puis vous redonnez et vous produisiez un A, etc. Et puis vous vous donnez, d'un point à l'automate, vous donnez un point à l'automate. Alors, au lieu de l'automate, vous donnez une réponse, puis vous avez un point à l'automate, donc vous réalisez une fonction d'un point à l'autre. Et la question naturelle, quand vous dealingz avec une fonction, c'est peut-être que vous composiez. Mais l'idée est, bien sûr, c'est que c'est une fonction, donc vous pouvez composer, ce qui fait cette composition, c'est-à-dire que l'AIMAR machine est stable par composition. Donc, ici, nous dealingz avec un transducer, donc c'est la position, vous avez un transducer A qui read des lettres A et produisiez des lettres B, et puis vous avez un transducer B qui read B et produisiez. Donc vous voulez faire la composition, et bien, la première la meilleure façon de le faire, c'est que vous premièrez votre transducer sur l'input A et puis vous produisiez l'output. Donc ici vous readz les lettres A et vous produisiez B1, B2 et puis vous produisiez B3, etc. Donc vous avez un tape à marcher qui stores l'output A et puis vous utilisez ce tape à marcher pour simuler votre transducer B et vous obtenez la deuxième partie. Donc en fin, vous réalisez la composition mais si vous voulez le faire avec seulement une machine, vous ne pouvez pas le faire. Parce que ici, votre tape à marcher est souvent de la taille donc vous pouvez le faire avec une machine finaite. Donc la solution qui a été conçue pour les transducers, c'est de le faire sur l'output et de l'utiliser un buffer. Parce que si vous avez le tape à marcher vous avez un buffer qui store une partie de votre calcul de votre exécution et puis, par contre, vous produisiez ce B1, B2 et vous le storez dans un buffer. Donc vous allez ici faire un state avec un buffer donc vous readz A1 et produisiez Epsilon et puis vous le produisiez et puis vous allez avoir un state vous readz le B1 et produisiez E1, C2 et puis vous readz B2 et produisiez C3. Donc c'est facile et le buffer est bondé par la taille de la production donc tout est finaite, il fonctionne bien et vous pouvez le faire avec l'expérience Epsilon parce qu'il y a un nombre finaite. Donc vous pouvez faire quelque chose comme ça et puis vous avez une machine qui fait la composition et le set de state est juste un state par les transducers A et un state par les transducers B Tout est bien pour le moment. Vous pouvez faire la composition ici j'ai dit de toute façon parce que je vais parler des modèles plus expressifs et vous pouvez faire avec un single transducer la composition et il a un nombre polynomial de state c'est-à-dire linéaire et les machines et c'est une construction très forte et très robuste je veux dire il préserve la détermination, il préserve la fonctionnalité tout fonctionne très bien c'est assez simple et la question que nous demandons c'est, oui, qu'est-ce qu'il y a des transducers A donc, comme Gabriela m'a dit il peut être fait mais c'est plus difficile mais qu'est-ce qu'on veut compter des transducers A ah oui, je vais définir ce que je veux dire par des transducers A parce que c'est un peu différent de Gabriela c'est-à-dire que vous avez similaire aux transducers qu'il y a des lettres et des outputs produits ici, vous avez des lettres spécifiques parce que ce sera les end-markers de votre input et parce que vous vous allowz votre reading-add à bouger à la gauche et à la droite alors vous devez rester dans les bounds de votre ward donc ce sont les nécessaires et comment vous décidez de bouger votre reading-add à la gauche ou à la droite ici, ce sera retenu dans les states signifiant que si je suis un state bleu je vais bouger à la droite et si je suis dans un state orange je vais bouger à la gauche ok, donc c'est un peu plus précis si je vais dans un state bleu que je vais bouger à la gauche si je vais dans un state orange je vais bouger à la droite donc je vais expliquer ici donc ça marche similaire je commence dans un state initial par le reading the beginning marker je vais commencer dans un state 1 que le read le input et le produisant la même lettre, le read A et B et le produisant la même lettre, donc je vais ici avoir mon output tape que le produisant et puis quand je reach le marker de la fin je vais dans un state orange et puis je sais que je vais bouger mon reading-add à la gauche donc après prendre cette transition je vais bouger à la gauche et puis je vais rester dans un state orange donc mon input et puis je vais dans un state bleu et puis je sais que je dois changer la direction again et donc je vais bouger et puis j'accepte quand je suis un final state ici à la fin du monde donc la chose importante est mon reading-add peut bouger en deux ways mais mon output tape que c'est juste une lettre n'est qu'une seule way d'à la gauche je ne peux pas revenir et bouger et concatené donc c'est mon modèle de 2 way transduceur et qu'est-ce qui s'est passé si on veut composer ah oui, pourquoi on s'intéresse parce qu'ils sont beaucoup plus expressifs qu'un 1 way transduceur parce que dans le cas d'automater c'est également expressif mais c'est aussi une classe très robuste que je ne vais pas parler de mais il y a beaucoup d'intérêt dans cette classe recently donc si vous voulez composer puis la nature est d'essayer de faire la même chose qu'avant quand vous êtes en bleu state alors vous êtes comme dans le cas d'1 way donc vous faites juste la computation et vous voulez utiliser ce buffer pour protéger la production et puis produire l'outil du buffer mais il y a un problème quand le 2e transduceur B est allé dans le nord en state d'essayer de bouger vous voulez aller en bas donc vous ne voulez pas lire ce B3, c'est le erreur vous voulez lire ce B1 B2, le buffer précédent mais vous l'avez oublié vous avez oublié alors vous devez récalculer donc vous devez aller en bas dans le rang de A et récalculer mais puis vous pouvez avoir un problème parce que comment vous savez que vous produisiez B1 et B2 ou si vous venez à cette autre transition P1 prime c'est produire B1 prime donc ici c'est facile parce que c'est 1 étape mais vous pouvez aller en bas en bas en bas en bas donc vous avez un problème et donc vous ne pouvez pas décider où vous allez vous ne pouvez pas décider directement où vous allez mais comme Gabriel a dit la composition est toujours possible c'est par Katelyn Yackel de 77 et ils utilisent une très belle stricte de Bob Croft & Ullman et basiquement la composition de 2 transduceurs 2H peut être faite aussi avec un transduceur 2H mais le problème est la complexité est à peu près 3H peut-être vous pouvez si vous êtes un peu plus smart vous pouvez le faire mieux mais vous avez 3H à la taille de A et c'est le point de départ de notre travail peut-être nous pouvons le faire mieux peut-être nous pouvons avoir une meilleure complexité parce que dans le 1WK c'est polynomial c'est très facile à comprendre cette construction est très involved et avec une grande complexité peut-être nous pouvons le faire mieux ou si nous ne pouvons pas le faire mieux peut-être nous pouvons trouver un subclass qui le fait mieux donc comment nous avons un subclass avec une meilleure composition pour cela vous devez comprendre pourquoi c'est dans le 1WK c'est très facile parce que l'exécution n'est qu'un mouvement donc quand vous faites un choix même si ce n'est pas déterminant vous n'avez pas besoin de le faire donc vous pouvez résoudre tout local vous pouvez décider ce que vous faites localement et vous faites tout localement et ça marche bien mais dans la deuxième façon surtout parce que vous ne pouvez pas résoudre tout local parce que chaque fois que vous allez dans une position vous devez prendre la même transition donc vous devez penser dans votre entière et ce n'est pas parce qu'il n'y a pas de détermination parce que vous devez revenir exactement dans le même endroit même si vous n'êtes pas déterminé il y a un problème ce n'est pas possible dans votre 1WK donc ce sont les patterns problématiques et donc les idées naturelles pour qu'on les forbid donc ici vient la machine réversable et l'idée est que la machine est réversable si vous pouvez l'exécuter et l'indiquer dans une façon déterminée donc si j'ai donné d'autres ingrédients je peux aller à la prochaine étape ou à la dernière étape vraiment facilement dans une façon déterminée et c'est ce que ça veut dire dans notre cas donc nous avons besoin d'être c'est-à-dire que vous n'avez pas de transition de la même état et d'input déterminé et ça c'est exactement mes patterns problématiques que je les forbid maintenant et donc la transduceuse réversable sera celle-ci et la bonne news c'est quand votre composition réversable fonctionne bien vous pouvez le faire avec une machine qui a un nombre polynomial vous pouvez le faire avec votre buffer et tout va vraiment bien donc c'est une bonne chose et c'est aussi très fort parce que si les machines sont réversables alors vous avez aussi une machine réversable et pour la qualité si vous voulez composer plusieurs machines ce sera très utile et donc nous avons notre classe et nous pouvons demander de l'exécutivité de notre classe et une autre chose c'est que dans le cas de la même état vous êtes très moins expressifs et pourquoi est-ce que c'est le cas ? c'est parce que être déterminé signifie que votre relation de transition est une fonction et être déterminé signifie que cette fonction est injective donc en fait vous avez la bijection chaque lettre induit la bijection sur le state ici le B-lettre induit l'identité et le A-lettre c'est le switch donc l'idée est que tout ce que vous faites c'est un groupe, c'est inversible et le nom donc ça a été caractérisé par Jean-Marie Pin c'est bien non, surtout vous faites les langues groupes et donc même dans le cas de la transduceur vous êtes très expressifs et donc vous pouvez pas faire une très simple langue comme cet état qui contient un A et pourquoi est-ce que c'est le cas ? ici vous voyez un automata pour cette langue et vous voyez que c'est pas déterminé parce que quand vous readez un A du final du state vous ne savez pas si vous venez du premier state ou du second state et l'idée est si vous voulez faire un code déterminé ce A quand vous readez un A de cet état vous devez aller à un autre état mais vous ne pouvez pas aller à cet état parce que c'est pas un état accepté et puis le même problème apprend et puis vous avez besoin d'un nombre infinitif ok, donc cette langue qui est expressible dans le plus logique, le plus formalisme n'est pas réversible donc dans le cas du premier état vous n'avez pas beaucoup d'expressivité mais ce n'est pas pourquoi nous le définissons nous le définissons pour un 2A et en fait, pour 2A vous n'avez pas d'expressivité par considérer que vous êtes un transduceur et en fait nous avons un procédure qui prend 2A transduceurs et construit un réversible donc ici je vais mainly parler d'un transduceur déterminé je vais parler non déterminé dans la conclusion mais nous pouvons construire un donc vous n'aurez pas d'expressivité vous avez un procédure qui est exponentiel donc en fait vous avez la composition pour 3, pour un prix exponentiel et l'idée est oui, vous êtes le premier à transformer l'automate un transduceur A pour un réversible et en fait vous séparer la composition la complexité vous séparer la complexité de la machine parce que vous payez le prix exponentiel et puis vous pouvez le faire c'est très bien si vous avez plusieurs machines vous devez plutôt être careful de ne pas exploiter vos états donc le reste de mon talk je vais essayer de convaincre l'intuition de pourquoi ça marche et dis-moi si je ne suis pas clair la première étape l'importance de la étape est faire ça pour une machine donc ici je vais prendre un transduceur déterminé il fonctionne aussi pour un déterminé et nous allons construire un autre état et juste pour être facile j'assume que j'ai un état initial c'est d'assurer que je n'ai que 1 état accepté c'est plus facile pour moi et que j'ai un déterminé ce qui signifie que quand j'ai un déterminé c'est limité à deux choix donc c'est un petit déterminé donc je vous donnerai la construction d'un exemple un transduceur qui a principalement trois états et un initial au final et vous pouvez aller au état 1 ou au état 2 et puis du état 2 au état 3 et vous pouvez vérifier que c'est déterminé parce que vous pouvez juste vérifier pour chaque état que c'est déterminé et l'idée est qu'il n'y a pas de déterminé excepté pour le dernier état et vous allez au état 1 si vous avez un déterminé excepté pour le dernier état et comment vous constructez la machine réversible vous prenez votre état 1 et vous considérez l'état 3 d'exécution c'est-à-dire que vous prenez tout le monde qui est possible sur cet état 1 et vous l'explorez une transition que vous avez déjà known pour l'automate pour aller de l'automate à une réversible état et l'idée c'est que vous explorez jusqu'à un état final mais ici nous avons quelque chose plus involved parce que nous n'avons pas besoin de savoir si nous arrivons à un état final nous devons savoir comment nous devons savoir chaque transition qui est en train de prendre parce que nous devons faire la production pour l'automate l'état 1 est au-delà de l'état 3 et l'état 1 est sous l'état 3 et nous savons que si ils s'agissent si ils sont dans le même état c'est la transition qui est en train ok ? donc vous devez être careful de le faire dans une réversible état et d'avoir les deux états similitant mais l'idée c'est l'état 1 est au-delà de tout ce que nous ne savons que l'état 2 est au-delà et l'état 2 est sous l'état donc vous avez cet état donc ici de l'état QI vous pouvez aller à l'état 1 ou 2 et vous êtes sous l'état vous ne savez pas quel état fonctionne et puis vous allez au état 3 ici et vous réalisez que vous ne pouvez pas lire l'état 3 donc vous devez retourner ici et vous réalisez que quand cet état ne fonctionne alors cet état aussi ne fonctionne parce qu'ils doivent être synchronisés donc ici vous allez vous voyez que cet état est terminé donc vous retournez et puis vous retournez et vous pouvez être tenté d'aller directement de cette façon mais si vous allez de cet état pour cet état vous évaluez la réversible état donc en fait vous devez aller de l'arrière et explorer votre état mais vous pouvez le faire ici et ici vous voyez que quand vous allez de l'état 1 à l'état 2 ici ils s'agreraient donc vous savez quel état a été état et puis vous pouvez le produire d'accord donc après vous devez le faire de l'état 3 donc ça explique le length de l'état et puis vous le produiserez et puis vous avez votre état donc d'une façon ici vous pouvez le déterminer mais aussi le déterminer vous pouvez construire la réversible état de l'état 2 et je n'étais pas sûr d'utiliser ça pour rien parce que ça va être un gros ingrédient dans notre prouve parce que oui la main utilité de la composition vous pouvez aussi le décomposer parce que si vous décomposez quelque chose en plus petit et que vous pouvez le décomposer alors tout fonctionne bien donc pour ma transduceur A je vais le décomposer en deux transduceurs l'une est la terminité de codé de l'état 1 et c'est là que vous payez l'exponentiale preuve parce que l'une est de l'exponentiale et puis la deuxième ce qu'il fait c'est que il va imaginer toute l'information qu'il a besoin dans la ronde pour les deux et la deuxième on va juste utiliser cette information pour faire la fonction de A dans une manière réversible et comment ça fonctionne comment ça fonctionne c'est un classique classique transduceur quelque chose comme chef-herd vous avez donc vous avez cette ronde de votre automata ici vous avez donc c'est la même transduceur que l'arrivée d'accepter que vous avez besoin de votre input pour être A star, B star juste pour que ce soit pas déjà réversible et puis ce que vous faites c'est que vous pensez ce qui se passe dans la ronde et c'est pourquoi votre codé terminité parce que vous pensez exactement à l'image de A, B, B donc vous avez quand vous readez ce n-marque vous vous trouverez le 0 et vous trouverez que vous avez un point riche en acceptant le state et c'est ce que vous avez enrichi votre input et puis vous allez au next step et puis vous trouverez que vous êtes le premier A ici pour le state 2 et le state 3 et vous faites ça pour chaque machine et vous pouvez obtenir l'information de les slices ok et vous pouvez le faire dans une fashion codéterminique parce que vous pensez exactement ce qui se passe dans le reste de la ronde donc c'est pour le premier et le second c'est simplement que vous utilisez toute cette information pour résoudre la transduction dans un moyen réversible et ça se passe juste comme le state de votre automaton et puis si vous avez toute cette information ce n'est pas c'est une chose ici si vous êtes dans un state 1 vous pouvez seulement utiliser le slice pour savoir que vous utilisez cette information et si si vous êtes dans un state 1 et vous voulez savoir ce que l'on a prévu vous pouvez juste le lire ok donc la information de la slice vous permet de être complètement déterminique et codéterminique donc pour le réversible ils sont vraiment bons pour la composition ils s'éteignent très bien, c'est facile c'est très similaire pour une machine et ils sont aussi expressifs comme déterminique pour les transducers et en fait c'est ce qu'on a un peu plus que ça si vous payez un prix exponentiel si vous allez de fonctionnel pour le réversible donc vous avez le même c'est déjà existé quand vous allez de fonctionnel pour déterminisme mais aller de fonctionnel pour le réversible c'est le même prix et en fait on a un peu un peu plus fort c'est que si vous n'êtes pas déterminique vous pouvez extracter un fonctionnel d'exponential c'est juste d'order le réun et prendre un et puis on a encore des questions parce que ce fonctionnel qui est requiert est-ce qu'il faut quand vous allez de fonctionnel pour le réversible ce qu'on ne connait pas encore ça peut être vrai et on peut demander si vous pouvez externer ça pour d'autres modèles pour exemple, j'imagine que si vous considérez que vous avez mis en place un transducer pour ceux qui le connaissent cette technique va encore marcher et peut-être un modèle plus explosif par exemple comme un automaton de papier ou quelque chose et c'est tout pour moi merci