filipg/amu_automata_2011 — Issue #245: Napisać metodę, która zwraca automat akceptujący homomorfizm języka akceptowanego przez dany automat
Author: filipg
Created: 2011-11-09 11:27:58+00:00
State: open

(Zadanie jest prostsze niż może się wydawać).

Homomorfizm to po prostu funkcja przyporządkowująca każdemu symbolowi ciąg symboli. Np. funkcja _h_, dla której: h('a') = "01", h('b')="10", h('c') = "1". Homomorfizm języka to naturalne rozszerzenie funkcji działającej na pojedynczych symbolach, np. język abc^n po zastosowaniu przykładowego homomorfizmu _h_ przyjmie postać 01101^n.

Metoda ma być zaimplementowana w klasie `AutomataOperations` i powinna mieć postać:

/**
* Zwraca automat akceptujący język powstały w wyniku zastosowania homomorfizmu h na
* języku akceptowanym przez automat automaton. Homomorfizm jest dany jako mapa, w której

AutomatonSpecification homomorphism(AutomatonSpecification automaton, Map h);

Zob. Hopcroft/Motwani/Ullman, s. 129-130.