2014 dxdy logo

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

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


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


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

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

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

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

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



Начать новую тему Ответить на тему
 
 Проверить регулярность языка
Сообщение07.09.2011, 22:55 


13/04/09
77
Помогите пожалуйста с задачей, нужно проверить регулярность языка $L$ в алфавите $\{0,1\}$ состоящего из всех слов длины больше 6 таких что последний символ совпадает с символом на 7-й от конца слова позиции.

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

 Профиль  
                  
 
 Re: Проверить регулярность языка
Сообщение07.09.2011, 23:17 
Заслуженный участник


09/09/10
3729
Ну и стройте, в чем загвоздка? Пропустить первые шесть букв, потом пропускать все, пока не встретится буква, бывшая на седьмом месте, на которой слово обрывается.

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


28/07/09
1178
Тарасов Задание 1 № 5(i)?!

 Профиль  
                  
 
 Re: Проверить регулярность языка
Сообщение07.09.2011, 23:59 


13/04/09
77
Тарасов, Тарасов)

Цитата:
Ну и стройте, в чем загвоздка? Пропустить первые шесть букв, потом пропускать все, пока не встретится буква, бывшая на седьмом месте, на которой слово обрывается.


так слово то с другого конца поступает, и как вообще реализовать "пропустить все буквы" нам же неизвестно заведомо сколько их и какие они

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


09/09/10
3729
Так. Ну-ка стойте. Надеюсь, вы согласны, что грамматика
$$(0(0|1)^*0)|(1(0|1)^*1)$$ регулярна? Что существует НКА, ей соответствующий?

 Профиль  
                  
 
 Re: Проверить регулярность языка
Сообщение08.09.2011, 21:36 


13/04/09
77
я не знаю что такое грамматика

 Профиль  
                  
 
 Re: Проверить регулярность языка
Сообщение08.09.2011, 21:50 
Заслуженный участник


09/09/10
3729
Опа. Оригинальный у Тарасова подход. Ладно. Тогда постройте для начала три автомата:

1. Распознающий слова длины ровно шесть.
2. Распознающий слова, начинающиеся и заканчивающиеся нулем.
3. Распознающий слова, начинающиеся и заканчивающиеся единицей.

P.S. Грамматика — это средство задания языка. Для регулярных языков в качестве грамматик использует регулярные выражения, которые по природе своей довольно прозрачно переводятся в конечные автоматы.

 Профиль  
                  
 
 Re: Проверить регулярность языка
Сообщение08.09.2011, 23:33 


13/04/09
77
все, я думал автомат должен быть детерменированным...

такой пойдет?

Изображение

зеленый кружок - начальное состояние, красные - конечные состояния

стрелки без букв - переход при любой поступившей букве

где многоточия - пропускаем еще 4 символа

 Профиль  
                  
 
 Re: Проверить регулярность языка
Сообщение09.09.2011, 13:21 
Заслуженный участник


27/04/09
28128
Вот автомат, распознающий слова длины ровно четыре (забыл, что надо было 6):

Изображение

NiGHTeR, какой ужас!

-- Пт сен 09, 2011 16:22:32 --

Начальное состояние самое левое, пометить забыл.

 Профиль  
                  
 
 Re: Проверить регулярность языка
Сообщение09.09.2011, 14:30 


13/04/09
77
arseniiv
почему ужас-то?

 Профиль  
                  
 
 Re: Проверить регулярность языка
Сообщение09.09.2011, 15:35 
Заслуженный участник


27/04/09
28128
Не потому, что рисунок страшный, а потому, что автомат какой-то слишком многосостоянный (если правильно понял, что там находится вместо многоточий). Зачем так много состояний?

 Профиль  
                  
 
 Re: Проверить регулярность языка
Сообщение09.09.2011, 18:01 


23/12/07
1757
А так нельзя? Чисто гипотетически, заведем $2^7$ состояний, каждое из которых соответствует возможной комбинациии последних семи прочитанных на данный момент автоматом букв. Тогда распознать - это значит, встретив терминатор строки, перейти в нужное состояние распознавания в зависимости от того, в каком из состояний с "последними $7$ прочитанными буквами" находились.

 Профиль  
                  
 
 Re: Проверить регулярность языка
Сообщение10.09.2011, 17:45 


13/04/09
77
arseniiv в сообщении #481828 писал(а):
Не потому, что рисунок страшный, а потому, что автомат какой-то слишком многосостоянный (если правильно понял, что там находится вместо многоточий). Зачем так много состояний?


не знаю, просто так сразу придумалось, а оптимизировать не стал, мне ж всего регулярность проверить...

_hum_
а автомат тогда еще и полный получается?

 Профиль  
                  
 
 Re: Проверить регулярность языка
Сообщение10.09.2011, 18:53 


23/12/07
1757
Цитата:
_hum_
а автомат тогда еще и полный получается?

Я лишь поверхностно знаком с теорией конечных автоматов и не в курсе, что означает "полнота автомата".

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

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



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

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


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

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