\documentclass[12pt,ifthen]{article} \usepackage{url} \usepackage{comment} \usepackage{hyperref} \usepackage{listings} \newif{\ifshowsoln} % \showsolntrue \newcommand{\und}{\_\_\_\_\_\_\_\_\_} \newcommand{\Z}{\mathbb{Z}} \usepackage{amsmath} \usepackage{amssymb} % for \nmid \begin{document} \centerline{\bf CMSC 452 Project -- Part 1. Morally Due April 8} \centerline{\bf LEO is in charge of the Project. Any Questions Go To Him} \section{Intro} {\bf Point Of This Assignment} To learn about DFA Minimization and help prepare for Part 2 of the Project. \begin{enumerate} \item Two DFA's are 'equivalent' if they recognize the same language. \item Given a DFA, we want to know if we can somehow construct another DFA that recognizes the same language, with the minimum possible number of states. \end{enumerate} {\bf Can we do this?} Yes! Through a process known as DFA minimization.\\ \\ {\bf Your task:} \begin{itemize} \item Research DFA minimization. Here are some resources to get you started: \begin{itemize} \item Wikipedia: \url{https://en.wikipedia.org/wiki/DFA_minimization} \item G4G: \url{https://www.geeksforgeeks.org/minimization-of-dfa/} \item UC Davis: \url{https://www.cs.ucdavis.edu/~rogaway/classes/120/winter12/minimization.pdf} \end{itemize} These should suffice for the assignment, but feel free to use other resources as well. \item Answer the prompts under the {\bf{Assignment}} section based on your research. \end{itemize} \section{Assignment} \begin{enumerate} \item Let $M = (Q, \Sigma, s, \delta, F)$ be a DFA, \begin{enumerate} \item Let $q$ and $q'$ be states in $Q$. In the context of DFA Minimization, what does it mean for $q$ to be non-distinguishable from $q'$? \item Suppose that we begin partitioning $Q$ by grouping together non-distinguishable states. Let $P_k$ be a partition of $Q$ and $\sigma \in \Sigma$. If $q$ and $q'$ belong to the same block in $P$ and $\delta(q, \sigma) \neq \delta(q', \sigma)$, will they still be in the same block in the next partition? Why or why not? \end{enumerate} \newpage \item Give pseudo-code that outputs the partition of non-distinguishable states from a DFA $M = (Q, \Sigma, s, \delta, F) $, i.e outputs the states for the minimized DFA: \begin{verbatim} new_states(M=(Q, Sigma, s, delta, F)): \end{verbatim} \newpage \item Give pseudo-code that outputs the new transition function for the minimized DFA of $M$ with new states $P$: \begin{verbatim} new_delta(M=(Q, Sigma, s, delta, F), P): \end{verbatim} \end{enumerate} \end{document}