Un autómata finito no determinista (AFND) puede estar en varios estados al mismo tiempo y realizar transiciones espontáneas entre estados. El lenguaje reconocido por un AFND se define como aquellas cadenas donde al menos uno de los estados finales es alcanzado. Un AFND se puede convertir a un autómata finito determinista equivalente para su ejecución en una computadora convencional.