Это называется straight-line program и в булевом случае обычно переформулируется в терминах схем из функциональных элементов.
Итак, задача: Дана схема, реализующая некоторую функцию
(
)
Определить, является ли эта функция биекцией.
Сведем к этой задаче уже упоминавшуюся задачу о тавтологии.
Пусть задана формула, построим по ней схему, у которой выход формулы просто размножен на
выходов (это делается по формуле линейно) и прикрутим к выходам этой схемы дополнительно еще несколько операций так, чтобы
(
- i-й вход,
- i-й выход,
- новый i-й выход). Для этого потребуется
новых элементов, так что это тоже линейно.
Эта схема реализует биекцию тогда и только тогда, когда исходная формула тавтологична на всем
без набора
(ну тут уж совсем техничская деталь доказать полиномиальнцю эквивалентность тавтологии и тавтологии без одного набора)
Т.о., поставленная задача coNP-трудна.
-- Вс май 16, 2010 16:43:52 --Эта задача также лежит в coNP, т.к. ф-я
биекция тогда и только тогда. когда отображает различные точки в различные. Легко построить полиномиальную недетерминированную машину, которая останавливается на всех путях вычисления тогда и только тогда, когда выполняется это условие (выбираем недетерминированно два различных набора и вычисляем значения на них)
Значит, эта задача coNP-полна.