Як написати доказ за допомогою індукції на довжину вхідного рядка?


20

У моєму курсі "Теорія обчислювальної техніки" багато наших проблем пов'язані з використанням індукції по довжині вхідного рядка для доведення тверджень про кінцеві автомати. Я розумію математичну індукцію, однак, коли струни вступають у гру, я отримую реальну активність. Я дуже вдячний, якби хтось пройшов процес створення такого доказу крок за кроком.

Ось приклад проблеми (вправа 2.2.10 від Hopcroft та Ullman 3rd Edition):

Розглянемо DFA за допомогою такої таблиці переходу

        0 1
       ________
-> А | AB
  * Б | BA

Неофіційно опишіть мову, прийняту цією DFA, і доведіть за допомогою індукції на довжині вхідного рядка, що ваш опис правильний.

Це відповідь на проблему в книзі, тому я не шукаю когось, щоб виконати домашні завдання. Мені просто потрібно, щоб хтось мені це прямо пояснив.

Відповідь книги: (взято звідси )

Автомат повідомляє, чи число побачених 1 парне (стан A) або непарне (стан B), приймаючи в останньому випадку. Це легка індукція на | w | щоб показати, що dh (A, w) = A, якщо і тільки тоді, коли w має парне число 1. Основа: | ш | = 0. Тоді w, порожній рядок, безумовно, має парне число 1's, а саме нуль 1's, а δ-hat (A, w) = A.

Індукція: Припустимо вислів для рядків, коротших від w. Тоді w = za, де a або 0, або 1.

  • Випадок 1: a = 0. Якщо w має парне число 1, то z. За індуктивною гіпотезою δ-hat (A, z) = A. Переходи DFA говорять нам δ-hat (A, w) = A. Якщо w має непарне число 1's, то так і z. За індуктивною гіпотезою δ-hat (A, z) = B, а переходи DFA говорять нам δ-hat (A, w) = B. Отже, у цьому випадку δ-hat (A, w) = А якщо і лише тоді, коли w має парне число 1.

  • Випадок 2: a = 1. Якщо w має парне число 1, то z має непарне число 1. За індуктивною гіпотезою, δ-hat (A, z) = B. Переходи DFA говорять нам δ-hat (A, w) = A. Якщо w має непарне число 1's, то z має парне число 1-х. За індуктивною гіпотезою δ-hat (A, z) = A, а переходи DFA говорять нам δ-hat (A, w) = B. Таким чином, і в цьому випадку δ-hat (A, w ) = A якщо і лише тоді, коли w має парне число 1.

Я розумію, як довести такі речі, як за допомогою індукції. Мене просто бентежить, як це працює зі створенням рядків. Мене плутають жирні частини. Я не розумію, як вони придумали / як це насправді доводить те, що прийнято / як це індуктивно.i=0ni=n(n+1)2

δ-hat - це, до речі, функція розширеного переходу.

Відповіді:


17

Оскільки незрозуміло, де лежить ваша проблема, я розпочну з самого початку.

Математична індукція працює як гра в китайський шепіт (в ідеальному випадку, тобто все спілкування без втрат) або (ідеально налаштоване) доміно : ви починаєте десь і показуєте, що кожен ваш наступний крок нічого не порушує, припускаючи, що нічого не порушено потім.

Більш формально, кожен доказ індукції складається з трьох основних елементів:

  • Індукційний якір , також базовий випадок : ви показуєте для невеликих випадків¹, що претензія має місце.
  • Гіпотеза індукції : ви припускаєте, що претензія стосується певного підмножини множини, про яку ви хочете щось довести.
  • Індуктивний крок : Використовуючи гіпотезу, ви показуєте, що претензія стосується більшої кількості елементів.

Звичайно, крок повинен бути налаштований таким чином, щоб він охоплював весь базовий набір (в межах межі).

Важлива примітка: люди, впевнені у своїх навичках індукції, часто затуляють якір і залишають гіпотезу неявною. Хоча це добре, коли ви представляєте свою роботу експертній аудиторії (наприклад, на папері), це не рекомендується при проведенні доказів, особливо як початківець. Запишіть усе.


Розглянемо простий приклад над ; ми хочемо показати, що n i = 0 i = n ( n + 1 )(N,) має місце для всіхпN.i=0нi=н(н+1)2нN

  • Якір : для , n i = 0 i = 0 = n ( n + 1 )н=0 чітко виконується.i=0нi=0=н(н+1)2
  • Гіпотеза : Припустимо, що має місце для довільної, але fixed²пN.i=0кi=к(к+1)2нN
  • Крок : Для обчисліть суму:н+1

    i=0n+1i=(n+1)+i=0ni=IHn+1+n(n+1)2=(n+2)(n+1)2

    Отже, тотожність справедлива для . (Зауважимо, що нам потрібна була лише крихітна частина гіпотези, а саме для k = n . Це часто трапляється.)n+1k=n

Індуктивний принцип тепер запевняє нас, що твердження справді справедливо: ми прямо показали це за . Крок говорить, що якщо він дорівнює 0 , він також має значення 1 ; якщо він утримує 1 , він також має 2 ; і так далі.00112


Давайте подивимось на інший приклад, цього разу на . Твердження, яке ми хочемо довести, таке: для кожного кінцевого підмножини A з N розмір набору потужностей 2 A з A дорівнює 2 | А | ³. Ми виконуємо нашу індукцію по ( N , ) , знову ж , а саме : за розміром підмножин А .(2N,)AN2AA2|A|(N,)A

  • Якір: Розгляньте (тільки) набір розміром , порожній набір. Зрозуміло, що 2 = { } і тому | 2 | = 1 = 2 0, як заявлено.02={}|2|=1=20
  • Гіпотеза: Припустимо, що для всіх множин з | А | n з деяким довільним, але фіксованим n N , маємо | 2 А | = 2 | А | .AN|A|nnN|2A|=2|A|
  • Крок: Нехай довільний⁴ розміром n + 1 , і b B довільний (такий b існує як n + 1 > 0 ). Тепер гіпотеза стосується B { b } і, таким чином, | 2 B { b } | = 2 п . З тих пірBNn+1bBbn+1>0B{b}|2B{b}|=2n

    ,2B=2B{b}{A{b}A2B{b}}

    у нас це дійсно як заявлено.|2B|=2|2B{b}|=22n=2n+1

Знову ж таки, індукцією твердження доведено.


Тепер для вашої проблеми можна використовувати загальну хитрість: посилення заяви . Якщо ви формулюєте свою заяву як "автомат приймає всі слова з непарною кількістю одиниць", ви отримуєте індукційну гіпотезу на кшталт "серед усіх слів довжини , автомат приймає саме ті, з непарною кількістю одиниць". Це нікуди не приведе вас, оскільки ми нічого не знаємо про те, скільки з них міститься в якій частині даного (прийнятого) слова; гіпотеза не застосовується до того, що ви відрізаєте від довільно вибраного слова.n

Тому ви хочете сформулювати більш сильну твердження: "Автомат перебуває у стані тоді і лише тоді, коли споживана частина вводу містила непарну кількість одиниць", і покажіть цю. Зауважте, що це передбачає колишню вимогу.B

  • Якір : Після обробки єдиного рядка довжиною нуля автомат явно перебуває в стані A, як заявлено.εA
  • Гіпотеза : Припустимо, що претензія справедлива для вхідних фрагментів довжиною до яка вибирається довільно, але фіксується.n
  • Крок : Розглянемо довільне слово . Є два випадки. w{0,1}n+1
    1. містить парну кількість одиниць. Є два випадки останнього символу. w
      1. : У цьому випадку w = w 1w n - 1 містить парне число одиниць. За індукційною гіпотезою, автомат перебуває у стані A після споживання w . Споживання w n = 0 призводить до того, що автомат залишається в стані A , як заявлено.wn=0w=w1wn1Awwn=0A
      2. : У цьому випадку w = w 1w n - 1 містить непарну кількість одиниць. За індукційною гіпотезою, автомат перебуває у стані B після споживання w . Споживання w n = 1 призводить до автоматичного переходу в стан A , як заявлено.wn=1w=w1wn1Bwwn=1A
    2. містить непарну кількість одиниць. Подібно до випадку 1.w

Принцип спонукання передбачає, що вимога справді є справедливою.


  1. Ви виконуєте індукцію за деяким частковим порядком; якір повинен охоплювати всі мінімальні елементи, а іноді й більше (залежно від твердження).
  2. "Довільне, але фіксоване" є суттєвим! Ми не можемо змінити на кроці і ставимось до нього як до фіксованого числа, але ми також не можемо нічого про це припускати.n
  3. Позначення набору потужності може здатися дивним. Зауважує, що набір потужності еквівалентний набору всіх функцій від А до 0 , 1 , який позначається таким чином.2AA0,1
  4. Вибір довільного є важливим для покриття всього простору. Можна спокуситись сказати: "Візьміть будь-який такий A і додайте елемент, якого раніше не було". У цьому випадку це зробить те саме, але в складніших налаштуваннях (наприклад, додавання вузлів до графіків) можна легко помилитися. Завжди візьміть довільний більший предмет, а потім розріжте його, щоб застосувати гіпотезу щодо його частин; ніколи не збирайте більшого об'єкта з менших, які є прихованими гіпотезою.BA
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.