ребятки, есть такого рода задачка:
A B
B F
C E
D E
E G
F G
G _
где первое значение - ключ, второе - переход по ключу.
Цель - минимизировать по одинаковым буквам в значениях. И необязательно соседние и могут быть много.
Чтобы получилось:
A a2
a2 a3
a3 G
G _
То есть сначала берем E F обьединяем в одно, назовем a3 и переход на G (так и остается)
Потом потом видим что в B C D заменились F E E на a3 a3 a3 и соответственно обьедияем их в a2 и переход на a3. Ну и у A меняется на a2 переход.
Я пробовал тупо в лоб итерацией от начала до конца, но тогда оно сначала обьединит С и D а потом уже E и F а B останется без внимания, так что такой вариант не подходит.
Есть идеи алгоритма?
PS: Лучше не спрашивайте зачем это)) В универе есть предмет - теория вычислительных процессов, там какие-то автоматы, буковки непонятные, я так и не понял зачем и я решил по приколу написать прогу для вычисления. Там как раз вот такая же фигня только больше столбцов и строк. Я привел сильно упрощенный пример.