SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
1 / 18
  Оценки длины слов, имеющих
заданный ранг относительно ДКА
2 / 18
                  Предметная область
Доклад относится к теории синхронизируемости.



Слово w называется синхронизирующим для заданного
детерминированного конечного автомата, если оно переводит
все его состояния в одно и то же состояние (любое).

ДКА называется синхронизируемым, если для него существует
синхронизирующее слово.



Теория имеет обширные применения:
•   реактивные системы (автономное управление, робототехника);
•   теория кодирования (коды, исправляющие ошибки);
•   ДНК-вычисления;
•   теория Перрона — Фробениуса (неотрицательные матрицы).
3 / 18
                       Гипотеза Черни

Пусть ДКА изn состояний синхронизируем.
Какова длина C(n) его кратчайшего синхронизирующего слова
в худшем случае?
Гипотеза Черни (Jan Černý, 1964):      C(n) = (n – 1)2.

Любой ДКА индуцирует Exp-автомат — автомат, состояния которого
являются множествами состояний исходного.
Синхронизирующее слово переводит Exp-автомат из состояния
мощности   n в состояние мощности 1.

Будем говорить, что слово имеет дефект k (или ранг n – k),
если оно переводит Exp-автомат из состояния мощности n
в состояние мощности n – k.
Синхронизирующее слово имеет дефект n – 1.
4 / 18
                              Обобщения

Пусть ДКА имеет слово дефекта k.
Какова длина       L(k) кратчайшего такого слова в худшем случае?

Гипотеза Пэна (Jean-Éric Pin, 1978)
Если ДКА имеет слово дефекта k, то      L(k) = k2.
(забегая вперѐд: опровергнута в 2001 г.)

Гипотеза о рангах
Если ДКА имеет слово дефекта   k и не имеет слов дефекта > k
(в таких случаях говорят, что ДКА имеет ранг n – k), то L(k) = k2.

Гипотеза Черни является частным случаем обеих этих гипотез
при   k = n – 1.
5 / 18
                              Границы

Известно, что k2 ≤ L(k) ≤ k (k + 1) (k + 2) / 6 – 1 (при k ≥ 3) [P. Frankl]
6 / 18
Серия Черни: оценка синхронизируемости
7 / 18
Серия Черни: оценка сжимаемости
8 / 18
           Перечислимость снизу и сверху
Функция называется перечислимой снизу (сверху),
если еѐ подграфик (надграфик) перечислим.
Функция является вычислимой тогда и только тогда,
когда она перечислима и снизу, и сверху.


Функция  L перечислима снизу путѐм полного перебора всех ДКА.
Более подробно: рассмотрим высказывание «L(k) ≤ l»
для некоторых k и l. Пусть оно неверно. Тогда существует ДКА,
имеющий слово дефекта k, но не имеющий слова дефекта k
и длины ≤ l. Этот факт можно подтвердить предъявлением ДКА,
который играет роль алгоритмически проверяемого сертификата.


Но как подтвердить высказывание «L(k) ≤ l», если оно верно?
Ведь оно начинается с квантора «для всех автоматов»,
а их бесконечно много!
9 / 18
                    Текущая ситуация

Раньше высказывание «L(k)     ≤ l»
для каждых   k и l доказывали по-своему.

Например:
•   L(0) ≤ 0    (тривиально);
•   L(1) ≤ 1    (очевидно);
•   L(2) ≤ 4    (несложно);
•   L(3) ≤ 9    (Jean-Éric Pin, 1981);
•   L(4) > 16   (Jarkko Kari, 2001)
— последний пример (опровергающий гипотезу Пэна)
был получен полным перебором автоматов.
10 / 18
Автомат Кари
11 / 18
                      Постановка задачи

Можно ли доказывать высказывания вида «L(k) ≤ l» автоматически?


Через L≤ n(k) обозначим кратчайшую длину слова дефекта        k
среди автоматов из не более    n состояний, обладающих таким словом.


Достаточно доказать, что L(k) ≤ l  L≤ f(k)(k) ≤ l для некоторого f.


Схема доказательства.
Пусть автомат имеет слово дефекта k, но его минимальная длина
больше l. Выделим из автомата «ядро», которое после определѐнной
«доработки» станет автоматом, обладающим тем же свойством,
но при этом его число состояний не превосходит f(k).
12 / 18
                  Ключевая идея

Разобъѐм множество всех ДКА на конечное число
классов эквивалентности. Каждый из этих классов
имеет бесконечную мощность, но может быть
закодирован конечной регулярной структурой данных.
Каждому классу соответствует автомат-ядро.

Перебираем все классы, и для каждого
генерируем доказательство.
Структура, кодирующая рассматриваемое разбиение,
(вместе с доказательствами для каждого класса)
является сертификатом, подтверждающим
высказывание «L(k) ≤ l».
13 / 18
                  Схема алгоритма

Разбиение ДКА строится на основе классификации монад.
Монада — одноместная операция на конечном множестве.
Она порождает орграф с постоянной исходящей степенью 1
(это совокупность циклов, оснащѐнных деревьями).

Классы строятся рекурсивно. Сначала множество
всех автоматов разбивается на несколько классов,
потом каждый из них — ещѐ на несколько и т. д.
Каждый класс разбивается тогда, когда нельзя
провести доказательство «прямо на нѐм».

Каждой итерации соответствует префикс потенциального
слова дефекта k. Рекурсивный вызов соответствует
добавлению ещѐ одного символа.
Итерации гарантированно завершаются.
14 / 18
      Построение классов
                  Все автоматы




                     ...


      ...                              ...


      ...                              ...
...         ...                  ...         ...
      ....................
15 / 18
         Доказательства для одного класса

Подобно тому, как каждый автомат индуцирует Exp-автомат,
каждый класс индуцирует Exp-класс — класс автоматов,
состояниям которого соответствуют множествам состояний
типичного экземпляра исходного класса. Состояние Exp-класса
имеет дефект k (или ранг n – k), если соответствующее ему
множество состояний имеет мощность n – k.

В общем случае Exp-класс тоже бесконечен,
но кодируется всегда конечным образом.

Доказательство для одного класса заключается в том,
чтобы предъявить путь в Exp-классе длины не больше l
из стартового состояния (дефекта 0) в состояние дефекта k
или убедиться в отсутствии (недоступности из стартового)
состояния дефекта k.
16 / 18
              Теоретические замечания

Возможность автоматического доказательства
означает, что функция L перечислима и сверху
(а значит, вычислима).

Аналогичный вопрос можно поставить
и для универсальных слов дефекта k —
слов, имеющих дефект k во всех автоматах
имеющих слово дефекта k (с фиксированным алфавитом).

Теорема [И. В. Петров, 2009].
Если w не является универсальным словом дефекта k,
то оно не является словом дефекта k для некоторого
автомата с числом состояний не больше 2(w(k – 1) + 1).
17 / 18
    Как работает программа

Входные данные                     Текстовый шаблон
    (k и l)                    с речевыми конструкциями



                                   Prove.bat
                   Прувер
                 (prove.exe)



                  proof.tex



                 PDFLaTeX



                 proof.pdf
18 / 18
 Заключение




Демонстрация

Mais conteúdo relacionado

Semelhante a 20110515 csseminar velder_otsenki dlini slov

20080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-0220080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-02Computer Science Club
 
20090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture0220090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture02Computer Science Club
 
Алгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсияАлгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсияEvgeny Smirnov
 
Многопоточные Алгоритмы (для BitByte 2014)
Многопоточные Алгоритмы (для BitByte 2014)Многопоточные Алгоритмы (для BitByte 2014)
Многопоточные Алгоритмы (для BitByte 2014)Roman Elizarov
 
Atomics, CAS and Nonblocking algorithms
Atomics, CAS and Nonblocking algorithmsAtomics, CAS and Nonblocking algorithms
Atomics, CAS and Nonblocking algorithmsAlexey Fyodorov
 
Probabilistic Verification in Computational Systems Design
Probabilistic Verification in Computational Systems DesignProbabilistic Verification in Computational Systems Design
Probabilistic Verification in Computational Systems DesignIosif Itkin
 
Введение в Clojure (Никита Прокопов)
Введение в Clojure (Никита Прокопов)Введение в Clojure (Никита Прокопов)
Введение в Clojure (Никита Прокопов)mainstreamless
 
Многопоточное Программирование - Теория и Практика
Многопоточное Программирование - Теория и ПрактикаМногопоточное Программирование - Теория и Практика
Многопоточное Программирование - Теория и ПрактикаRoman Elizarov
 

Semelhante a 20110515 csseminar velder_otsenki dlini slov (9)

алгоритм
алгоритмалгоритм
алгоритм
 
20080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-0220080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-02
 
20090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture0220090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture02
 
Алгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсияАлгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсия
 
Многопоточные Алгоритмы (для BitByte 2014)
Многопоточные Алгоритмы (для BitByte 2014)Многопоточные Алгоритмы (для BitByte 2014)
Многопоточные Алгоритмы (для BitByte 2014)
 
Atomics, CAS and Nonblocking algorithms
Atomics, CAS and Nonblocking algorithmsAtomics, CAS and Nonblocking algorithms
Atomics, CAS and Nonblocking algorithms
 
Probabilistic Verification in Computational Systems Design
Probabilistic Verification in Computational Systems DesignProbabilistic Verification in Computational Systems Design
Probabilistic Verification in Computational Systems Design
 
Введение в Clojure (Никита Прокопов)
Введение в Clojure (Никита Прокопов)Введение в Clojure (Никита Прокопов)
Введение в Clojure (Никита Прокопов)
 
Многопоточное Программирование - Теория и Практика
Многопоточное Программирование - Теория и ПрактикаМногопоточное Программирование - Теория и Практика
Многопоточное Программирование - Теория и Практика
 

Mais de Computer Science Club

20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

Mais de Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 

20110515 csseminar velder_otsenki dlini slov

  • 1. 1 / 18 Оценки длины слов, имеющих заданный ранг относительно ДКА
  • 2. 2 / 18 Предметная область Доклад относится к теории синхронизируемости. Слово w называется синхронизирующим для заданного детерминированного конечного автомата, если оно переводит все его состояния в одно и то же состояние (любое). ДКА называется синхронизируемым, если для него существует синхронизирующее слово. Теория имеет обширные применения: • реактивные системы (автономное управление, робототехника); • теория кодирования (коды, исправляющие ошибки); • ДНК-вычисления; • теория Перрона — Фробениуса (неотрицательные матрицы).
  • 3. 3 / 18 Гипотеза Черни Пусть ДКА изn состояний синхронизируем. Какова длина C(n) его кратчайшего синхронизирующего слова в худшем случае? Гипотеза Черни (Jan Černý, 1964): C(n) = (n – 1)2. Любой ДКА индуцирует Exp-автомат — автомат, состояния которого являются множествами состояний исходного. Синхронизирующее слово переводит Exp-автомат из состояния мощности n в состояние мощности 1. Будем говорить, что слово имеет дефект k (или ранг n – k), если оно переводит Exp-автомат из состояния мощности n в состояние мощности n – k. Синхронизирующее слово имеет дефект n – 1.
  • 4. 4 / 18 Обобщения Пусть ДКА имеет слово дефекта k. Какова длина L(k) кратчайшего такого слова в худшем случае? Гипотеза Пэна (Jean-Éric Pin, 1978) Если ДКА имеет слово дефекта k, то L(k) = k2. (забегая вперѐд: опровергнута в 2001 г.) Гипотеза о рангах Если ДКА имеет слово дефекта k и не имеет слов дефекта > k (в таких случаях говорят, что ДКА имеет ранг n – k), то L(k) = k2. Гипотеза Черни является частным случаем обеих этих гипотез при k = n – 1.
  • 5. 5 / 18 Границы Известно, что k2 ≤ L(k) ≤ k (k + 1) (k + 2) / 6 – 1 (при k ≥ 3) [P. Frankl]
  • 6. 6 / 18 Серия Черни: оценка синхронизируемости
  • 7. 7 / 18 Серия Черни: оценка сжимаемости
  • 8. 8 / 18 Перечислимость снизу и сверху Функция называется перечислимой снизу (сверху), если еѐ подграфик (надграфик) перечислим. Функция является вычислимой тогда и только тогда, когда она перечислима и снизу, и сверху. Функция L перечислима снизу путѐм полного перебора всех ДКА. Более подробно: рассмотрим высказывание «L(k) ≤ l» для некоторых k и l. Пусть оно неверно. Тогда существует ДКА, имеющий слово дефекта k, но не имеющий слова дефекта k и длины ≤ l. Этот факт можно подтвердить предъявлением ДКА, который играет роль алгоритмически проверяемого сертификата. Но как подтвердить высказывание «L(k) ≤ l», если оно верно? Ведь оно начинается с квантора «для всех автоматов», а их бесконечно много!
  • 9. 9 / 18 Текущая ситуация Раньше высказывание «L(k) ≤ l» для каждых k и l доказывали по-своему. Например: • L(0) ≤ 0 (тривиально); • L(1) ≤ 1 (очевидно); • L(2) ≤ 4 (несложно); • L(3) ≤ 9 (Jean-Éric Pin, 1981); • L(4) > 16 (Jarkko Kari, 2001) — последний пример (опровергающий гипотезу Пэна) был получен полным перебором автоматов.
  • 11. 11 / 18 Постановка задачи Можно ли доказывать высказывания вида «L(k) ≤ l» автоматически? Через L≤ n(k) обозначим кратчайшую длину слова дефекта k среди автоматов из не более n состояний, обладающих таким словом. Достаточно доказать, что L(k) ≤ l  L≤ f(k)(k) ≤ l для некоторого f. Схема доказательства. Пусть автомат имеет слово дефекта k, но его минимальная длина больше l. Выделим из автомата «ядро», которое после определѐнной «доработки» станет автоматом, обладающим тем же свойством, но при этом его число состояний не превосходит f(k).
  • 12. 12 / 18 Ключевая идея Разобъѐм множество всех ДКА на конечное число классов эквивалентности. Каждый из этих классов имеет бесконечную мощность, но может быть закодирован конечной регулярной структурой данных. Каждому классу соответствует автомат-ядро. Перебираем все классы, и для каждого генерируем доказательство. Структура, кодирующая рассматриваемое разбиение, (вместе с доказательствами для каждого класса) является сертификатом, подтверждающим высказывание «L(k) ≤ l».
  • 13. 13 / 18 Схема алгоритма Разбиение ДКА строится на основе классификации монад. Монада — одноместная операция на конечном множестве. Она порождает орграф с постоянной исходящей степенью 1 (это совокупность циклов, оснащѐнных деревьями). Классы строятся рекурсивно. Сначала множество всех автоматов разбивается на несколько классов, потом каждый из них — ещѐ на несколько и т. д. Каждый класс разбивается тогда, когда нельзя провести доказательство «прямо на нѐм». Каждой итерации соответствует префикс потенциального слова дефекта k. Рекурсивный вызов соответствует добавлению ещѐ одного символа. Итерации гарантированно завершаются.
  • 14. 14 / 18 Построение классов Все автоматы ... ... ... ... ... ... ... ... ... ....................
  • 15. 15 / 18 Доказательства для одного класса Подобно тому, как каждый автомат индуцирует Exp-автомат, каждый класс индуцирует Exp-класс — класс автоматов, состояниям которого соответствуют множествам состояний типичного экземпляра исходного класса. Состояние Exp-класса имеет дефект k (или ранг n – k), если соответствующее ему множество состояний имеет мощность n – k. В общем случае Exp-класс тоже бесконечен, но кодируется всегда конечным образом. Доказательство для одного класса заключается в том, чтобы предъявить путь в Exp-классе длины не больше l из стартового состояния (дефекта 0) в состояние дефекта k или убедиться в отсутствии (недоступности из стартового) состояния дефекта k.
  • 16. 16 / 18 Теоретические замечания Возможность автоматического доказательства означает, что функция L перечислима и сверху (а значит, вычислима). Аналогичный вопрос можно поставить и для универсальных слов дефекта k — слов, имеющих дефект k во всех автоматах имеющих слово дефекта k (с фиксированным алфавитом). Теорема [И. В. Петров, 2009]. Если w не является универсальным словом дефекта k, то оно не является словом дефекта k для некоторого автомата с числом состояний не больше 2(w(k – 1) + 1).
  • 17. 17 / 18 Как работает программа Входные данные Текстовый шаблон (k и l) с речевыми конструкциями Prove.bat Прувер (prove.exe) proof.tex PDFLaTeX proof.pdf
  • 18. 18 / 18 Заключение Демонстрация