Есть две операции, соответствующие классическим операциям сложения и вычитания над двумя элементами, и есть заданный многочлен с этими операциями, например: ((((A+B)+C)-D)-E). Требуется найти все остальные многочлены, имеюшие такое же значение (в алгебраичесом смысле), что и заданный. Операции можно группировать, поэтому, например, такой многочлен (((A+C)+B)-(D+E)) должен быть получен.
Если бы не было операции вычитания, я бы, например, смог получить все такие многочлены путем перечисления связанных остовных деревьев графа на вершинах, соответствующих элементам многочлена.
Алгоритмы полного перебора меня не пугают, так как число элементов в исходном многочлене сравнительно небольшое.
Какие у уважаемых коллег будут соображения по поводу алгоритма решения такой задачи?