2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

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



Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Регулярные языки
Сообщение07.10.2009, 06:06 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
INDIGO1991 в сообщении #249628 писал(а):
Профессор Снэйп
вы не могли бы написать чуть подробней ваше доказательство?
У меня не совсем получается его восстановить по вашему очерку.

Оно у меня в голове вертелось, я на бумагу не пытался его записывать. Боюсь, что если начать это делать, то там вылезут многочисленные сложности...

Одна из идей, упрощающих доказательство, была такая. Если $L$ --- регулярный язык, то $L = L_1 \cup \ldots \cup L_k$, где для любого $i$ от $1$ до $k$ длины слов из языка $L_i$ образуют арифметическую прогрессию. Далее, конкатенация с объединением подчиняются свойству дистрибутивности. И ещё: если $L_{m/n \pm s}$ регулярен, то $(L_i)_{m/n \pm s}$ регулярен для любого $i$. Так что случай конкатенации можно свести к конкатенации языков, длины слов каждого из которых образуют одну арифметическую прогрессию.

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

Кстати, почему именно с конкатенацией сложности? Звёздочка Клини, как мне кажется, ничуть не проще.

Там вон выше Xaositect построил автомат в явном виде, лучше с ним поразбираться сначала :) Может, и не нужны будут все эти мои заморочки :)

Xaositect в сообщении #249642 писал(а):
Кстати, используя нетривиальный факт о том, что множество регулярных языков совпадает с множеством языков, распознаваемых на одноленточной машине Тьюринга за линейное время, задача решается достаточно просто, достаточно построить эту линейную МТ.

Вот это мне самому очень интересно. Как её строить, такую линейную МТ? Если к данному слову дописывать по очереди все слова такой же длины и проверять для каждой конкатенации принадлежность исходному языку, то тут даже полиномиальной сложности не будет, не то что линейной :?

Вот, кстати, факт: если язык $L$ регулярен, то язык $\{ wv : w \in L,\, l(w) = l(v) \}$ уже может быть не регулярным (пример --- язык, задаваемый регулярным выражением $a^\ast b$). То есть если просто искать половинки слов и проверять (за линейное время) их принадлежность языку $L$, то линейность теряется. То есть половинка слова просто так за линейное время не находится. А то, что Вы собрались за линейное время делать, выглядит гораздо сложнее!!!

-- Ср окт 07, 2009 09:11:33 --

Xaositect в сообщении #249657 писал(а):
Неформально: вместе с состоянием исходного автомата храним функцию, которая говорит, до каких состояний можно добраться из данного за количество шагов, равное уже сделанному.

А как Вы можете знать, какое количество шагов уже сделано? В автоматах, знаете ли, циклы разные бывают. Pumping lemma опять же :)

Хотя в формальную конструкцию пока не вникал. Может, оно всё и нормально там...

-- Ср окт 07, 2009 09:24:30 --

Ага! Прочитал формальную конструкцию. Вроде понял, вроде всё правильно :)

Там подправьте, кстати, кое-где. У Вас функция $\varphi$ то одноместная, то двухместная: в разных местах по разному :)

 Профиль  
                  
 
 Re: Регулярные языки
Сообщение07.10.2009, 11:44 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Профессор Снэйп в сообщении #249675 писал(а):
Вот это мне самому очень интересно. Как её строить, такую линейную МТ?

Сначала идем вправо как автомат, потом влево до началаа как недерминированный автомат, считая, что на каждом шаге нам как бы попадаются все символы алфавита.
Ну а после этой МТ до описанного автомата - еще пара шагов.

Профессор Снэйп в сообщении #249675 писал(а):
Там подправьте, кстати, кое-где. У Вас функция то одноместная, то двухместная: в разных местах по разному

Править уже не могу, кому надо - разберутся :)

 Профиль  
                  
 
 Re: Регулярные языки
Сообщение07.10.2009, 12:04 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
Xaositect в сообщении #249726 писал(а):
Править уже не могу, кому надо - разберутся :)

Кстати, мне показалось, что у Вас чересчур сложная конструкция. Достаточно брать $Q' = Q \times 2^Q$, состояний будет меньше.

 Профиль  
                  
 
 Re: Регулярные языки
Сообщение07.10.2009, 12:48 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Да, достаточно.

 Профиль  
                  
 
 Re: Регулярные языки
Сообщение07.10.2009, 19:16 


30/04/09
81
Нижний Новгород
В решении вот только разобрался, подставив пару канкретных языков!

Огромное вам спасибо!!!

 Профиль  
                  
 
 Re: Регулярные языки
Сообщение08.10.2009, 12:07 
Аватара пользователя


18/02/09
95
Xaositect в сообщении #249657 писал(а):
Ну можно сразу автомат построить, но он сложно описывается.
Пусть множество состяний автомата, распознающего исходный язык $L$, есть $Q$, функция перехода - $\varphi\colon Q\times A\to Q$, начальное состояние $q_0$, мн-во принимающих - $F$
Рассмотрим функцию $\nu\colon 2^Q\to 2^Q$: $\nu(T) = \{\varphi(q,a)|q\in T, a\in A\}$
Рассмотрим автомат с множеством состояний $Q' = Q\times (Q\to 2^Q)$, функцией перехода $\varphi'(<q, f>, a) = <\varphi(q), \nu \circ f>$, начальным состоянием $<q_0, \sigma>$, где $\sigma(q) = \{q\}$, множеством принимающих состояний $F' = \{<q, f> | f(q)\cap F \neq \varnothing\}$
Неформально: вместе с состоянием исходного автомата храним функцию, которая говорит, до каких состояний можно добраться из данного за количество шагов, равное уже сделанному.
Дальше сами, я и так уже слишком много написал.

О, спасибочки))) даже я вспомнила, даже то, что не знала))))

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу Пред.  1, 2

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group