%% This is a LaTeX document.  Hey, Emacs, -*- latex -*- , get it?
\documentclass[12pt,a4paper]{article}
\usepackage[francais]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage{ucs}
\usepackage{times}
% A tribute to the worthy AMS:
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
%
\usepackage{mathrsfs}
\usepackage{wasysym}
\usepackage{url}
%
\usepackage{graphics}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{arrows,automata,positioning}
\usepackage{hyperref}
%
\newenvironment{qcm}{\relax}{\relax}
\newenvironment{qvar}{\relax}{\relax}
\newcounter{quescnt}
\newenvironment{question}%
{\stepcounter{quescnt}\bigskip\noindent\textbf{Question~\arabic{quescnt}.}\par\nobreak}
{\relax}
\newcounter{answcnt}[quescnt]
\newcommand\answer{%
\stepcounter{answcnt}\smallskip\textbf{(\Alph{answcnt})}~}
\let\rightanswer=\answer
%
\DeclareUnicodeCharacter{00A0}{~}
\DeclareUnicodeCharacter{03B5}{$\varepsilon$}
%
\DeclareMathSymbol{\tiret}{\mathord}{operators}{"7C}
\DeclareMathSymbol{\traitdunion}{\mathord}{operators}{"2D}
%
\newif\ifcorrige
\corrigetrue
%
%
% NOTE: compile dot files with
% dot2tex --figonly -f tikz --tikzedgelabels --graphstyle=automaton file.dot  > file.tex
\tikzstyle{automaton}=[>=stealth',initial text={},thick,every loop/.style={min distance=7mm,looseness=5}]
\tikzstyle{state}=[]
\tikzstyle{final}=[accepting by arrow]
%
%
%
\begin{document}
\ifcorrige
\title{INF105\\Contrôle de connaissances — Corrigé\\{\normalsize Théorie des langages}}
\else
\title{INF105\\Contrôle de connaissances\\{\normalsize Théorie des langages}}
\fi
\author{}
\date{(date à remplir)}
\maketitle

\pretolerance=8000
\tolerance=50000

\vskip1truein\relax

\noindent\textbf{Consignes.}

Ce contrôle de connaissances est un QCM (questionnaire à choix
multiples).  Chaque question admet une unique réponse correcte.  Les
questions sont totalement indépendantes les unes des autres.  La
sélection des questions et l'ordre ont été tirés aléatoirement et
n'obéissent donc à aucune logique particulière.

La réponse est attendue sous forme d'une liste de numéros de question
suivie de la réponse proposée : par exemple, « \verb=1A 2B 4D= » pour
signifier que la réponse proposée à la question 1 est (A), la réponse
proposée à la question 2 est (B), et la réponse proposée à la
question 4 est (D).

Une réponse incorrecte sera (deux fois) plus fortement pénalisée
qu'une absence de réponse : il est donc préférable de ne pas répondre
à une question que de répondre aléatoirement.

\medbreak

Durée : (à remplir)

\vfill

{\tiny\noindent
\immediate\write18{sh ./vc > vcline.tex}
Git: \input{vcline.tex}
\immediate\write18{echo ' (stale)' >> vcline.tex}
\par}

\pagebreak

\begin{qcm}


%
%
%

\begin{qvar}

\begin{question}

Lequel des mots suivants est un sous-mot de $abcabcabc$ ?

\rightanswer
$acbac$

\answer
$abacbab$

\answer
$aabbcc$

\answer
$acbba$

\end{question}

\begin{question}

Lequel des mots suivants est un sous-mot de $abcabcbca$ ?

\rightanswer
$acbba$

\answer
$abacbab$

\answer
$aabbcc$

\answer
$acbac$

\end{question}

\end{qvar}


%
%
%

\begin{qvar}

\begin{question}

Soit $w$ un mot quelconque sur un alphabet $\Sigma$.  Le langage des
sous-mots de $w$ est...

\rightanswer
fini et rationnel

\answer
fini mais pas rationnel

\answer
rationnel mais pas fini

\answer
ni fini ni rationnel

\end{question}

\begin{question}

Soit $w$ un mot quelconque sur un alphabet $\Sigma$.  Le langage des
mots dont $w$ est un sous-mot est...

\rightanswer
rationnel mais pas fini

\answer
fini et rationnel

\answer
fini mais pas rationnel

\answer
ni fini ni rationnel

\end{question}

\end{qvar}


%
%
%

\begin{question}

Lequel des mots suivants appartient au langage dénoté par l'expression
rationnelle $(ab|ba){*}$ ?

\rightanswer
$abbaab$

\answer
$abaabb$

\answer
$aaabbb$

\answer
$abbabba$

\end{question}


%
%
%

\begin{qvar}

\begin{question}

Laquelle des expresssions rationnelles suivantes est équivalente
à $a{*}(bba{*}){*}$ ?

\rightanswer
$(a|bb){*}$

\answer
$a{*}(bb){*}a{*}$

\answer
$a{*}bba{*}$

\answer
$(abba){*}$

\end{question}

\begin{question}

Lequel des mots suivants appartient au langage dénoté par l'expression
rationnelle $a{*}(bba{*}){*}$ ?

\rightanswer
$abbabba$

\answer
$aaabbb$

\answer
$abbaab$

\answer
$abaabb$

\end{question}

\end{qvar}


%
%
%

\begin{qvar}

\begin{question}

Le langage engendré par la grammaire hors-contexte $S \rightarrow
abS\;|\;baS\;|\;\varepsilon$ est...

\rightanswer
rationnel et algébrique

\answer
rationnel mais pas algébrique

\answer
algébrique mais pas rationnel

\answer
ni algébrique ni rationnel

\end{question}

\begin{question}

Le langage engendré par la grammaire hors-contexte $S \rightarrow
abS\;|\;Sba\;|\;\varepsilon$ est...

\rightanswer
algébrique mais pas rationnel

\answer
rationnel et algébrique

\answer
rationnel mais pas algébrique

\answer
ni algébrique ni rationnel

\end{question}

\end{qvar}


%
%
%

\begin{qvar}

\begin{question}

Soit $L := \{a^{2^i} : i\in\mathbb{N}\}$ l'ensemble des mots sur
$\Sigma := \{a\}$ dont la longueur est une puissance de $2$.  Ce
langage $L$ est...

\rightanswer
décidable mais non algébrique

\answer
algébrique mais non rationnel

\answer
rationnel mais infini

\answer
fini

\answer
semi-décidable mais non décidable

\end{question}

\begin{question}

Soit $L := \{a^{12i} : i\in\mathbb{N}\}$ l'ensemble des mots sur
$\Sigma := \{a\}$ dont la longueur est multiple de $12$.  Ce
langage $L$ est...

\rightanswer
rationnel mais infini

\answer
décidable mais non algébrique

\answer
algébrique mais non rationnel

\answer
fini

\answer
semi-décidable mais non décidable

\end{question}

\end{qvar}


%
%
%

\begin{qvar}

\begin{question}

Un alphabet $\Sigma$ étant fixé, si $r$ est une expression rationnelle
sur $\Sigma$, existe-t-il toujours une expression rationnelle $r'$ qui
dénote le langage formé des mots qui \emph{ne vérifient pas} $r$ ?

\rightanswer
oui, et on dispose d'un algorithme permettant de calculer $r'$ en
fonction de $r$

\answer
oui, mais on ne dispose pas d'algorithme permettant de calculer $r'$
en fonction de $r$

\answer
non, ce langage n'est pas forcément rationnel

\end{question}

\begin{question}

Un alphabet $\Sigma$ étant fixé, si $r_1$ et $r_2$ sont deux
expressions rationnelles sur $\Sigma$, existe-t-il toujours une
expression rationnelle $r'$ qui dénote le langage formé des mots qui
vérifient \emph{à la fois} $r_1$ \emph{et} $r_2$ ?

\rightanswer
oui, et on dispose d'un algorithme permettant de calculer $r'$ en
fonction de $r_1$ et $r_2$

\answer
oui, mais on ne dispose pas d'algorithme permettant de calculer $r'$
en fonction de $r_1$ et $r_2$

\answer
non, ce langage n'est pas forcément rationnel

\end{question}

\end{qvar}


%
%
%

\begin{question}

L'automate fini sur l'alphabet $\Sigma := \{a,b\}$ représenté
ci-dessous

\begin{center}
\begin{tikzpicture}[>=latex,line join=bevel,automaton]
\node (q1) at (0bp,0bp) [draw,circle,state,initial] {$1$};
\node (q2) at (70bp,0bp) [draw,circle,state] {$2$};
\node (q3) at (140bp,0bp) [draw,circle,state,final] {$3$};
  \draw [->] (q1) to[loop above] node[auto] {$a$} (q1);
  \draw [->] (q1) to node[auto] {$\varepsilon$} (q2);
  \draw [->] (q2) to node[auto] {$b$} (q3);
\end{tikzpicture}
\end{center}

\noindent est-il...

\rightanswer
un automate fini non-déterministe à transitions spontanées

\answer
un automate fini déterministe incomplet à transitions spontanées

\end{question}


%
%
%

\begin{question}

L'élimination des transitions spontanées sur l'automate fini sur
l'alphabet $\Sigma := \{a,b\}$ représenté ci-dessous

\begin{center}
\begin{tikzpicture}[>=latex,line join=bevel,automaton]
\node (q1) at (0bp,0bp) [draw,circle,state,initial] {$1$};
\node (q2) at (70bp,0bp) [draw,circle,state] {$2$};
\node (q3) at (140bp,0bp) [draw,circle,state,final] {$3$};
  \draw [->] (q1) to[loop above] node[auto] {$a$} (q1);
  \draw [->] (q1) to node[auto] {$\varepsilon$} (q2);
  \draw [->] (q2) to node[auto] {$b$} (q3);
\end{tikzpicture}
\end{center}

\noindent s'obtient-elle...

\rightanswer
en supprimant la transition étiquetée $\varepsilon$ reliant $1$ à $2$
et en ajoutant une transition étiquetée $b$ reliant $1$ à $3$

\answer
en supprimant la transition étiquetée $\varepsilon$ reliant $1$ à $2$
et en ajoutant une transition étiquetée $a$ reliant $1$ à $3$

\answer
en remplaçant la transition étiquetée $\varepsilon$ reliant $1$ à $2$
par une transition étiquetée $b$ (toujours reliant $1$ à $2$)

\answer
en remplaçant la transition étiquetée $\varepsilon$ reliant $1$ à $2$
par une transition étiquetée $a$ (toujours reliant $1$ à $2$)

\end{question}


\end{qcm}
%
%
%
\end{document}
