Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Max Alekseyev                        2:5015/60      18 Apr 2002  14:20:58
 To : Constantin Stefanov
 Subject : Эквивалентность формул.
 -------------------------------------------------------------------------------- 
 
 
 Replying to a message of Constantin Stefanov to Max Alekseyev:
 
  CS>>> Есть две формулы, представленные деревьями. Требуется определить,
  CS>>> являются ли эти два дерева представлениями одной и той же формулы
  CS>>> (в идеале - с учетом коммутативности и ассоциативности, но для
  CS> Э-э-э, тут я просто спутал. Имеется в виду коммутативность и
  CS> дистрибутивность, ассоциативность у сложения и умножения
  CS> предполагается. Вообще, в идеале это задаваемые шаблоны, т.к. речь
  CS> идет об анализе программ на Си, а там еще есть дистрибутивность
  CS> конъюнкции по дизъюнкции и наоборот, два унарных минуса можно
  CS> сократить и т.д. 
 
 [...]
 
  MA>> Если интересно, могу предложить эффективный вероятностный алгоритм.
  CS> Интересно.
 
 Прежде всего обозначим параметры задачи: n = число переменных, m = число
 операций в дереве формулы.
 Формула есть не что иное как "линейная" программа, т.е. последовательность чисел
 P: x_1, x_2, ..., x_n, f_1(.), f_2(.), ..., f_m(.),
 где сначала идут переменные, а затем функции от предшествующих чисел
 последовательности. Результатом вычислений называется последнее число, т.е.
 значение функции f_m(.), которое обозначается P(x_1,x_2,...,x_n). 
 
 Задача эквивалентности линейных программ ставиться так:
 Даны две линейные программы P и Q от набора переменных x_1,...,x_n. Верно ли что
 P(x_1,...,x_n)=Q(x_1,...,x_n) на любом наборе значений переменных?
 
 Вероятностный алгоритм для решения этой задачи:
 Сгенерировать случайное простое p число длины 4m (в двоичном представлении).
 Сгенерировать случайные числа x_1,...,x_n из интервала [0,2^(n+m)].
 Вычислить u=P(x_1,...,x_n) mod p        и        v=P(x_1,...,x_n) mod p.
 Если u=v вернуть "эквивалентны", иначе вернуть "не эквивалентны".
 
 Доказывается, что вероятность ошибки, т.е. возврата "эквивалентны" в случае
 неэквивалетности программ, равна 
 O(m 2^(-2m) + 2^(-n)).
 
 Regards,      ш.ш
         Max    ~
 
 --- FleetStreet 1.27.3.7
  * Origin:  (2:5015/60)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Эквивалентность формул.   Constantin Stefanov   17 Apr 2002 12:01:00 
 Эквивалентность формул.   Max Alekseyev   17 Apr 2002 16:04:02 
 Re: Эквивалентность формул.   Constantin Stefanov   18 Apr 2002 18:38:52 
 Эквивалентность формул.   Max Alekseyev   18 Apr 2002 14:20:58 
 Re: Эквивалентность формул.   Vovanius Uryvaeff   25 Apr 2002 15:24:23 
 Re: Эквивалентность формул.   Constantin Stefanov   25 Apr 2002 18:20:26 
 Эквивалентность формул.   Max Alekseyev   25 Apr 2002 15:47:54 
Архивное /ru.algorithms/18133cbedb3d.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional