Форум программистов, компьютерный форум, киберфорум
Теория автоматов
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/34: Рейтинг темы: голосов - 34, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 11.06.2017
Сообщений: 5
1

Построить конечный автомат для распознания регулярного множества цепочек трехсимвольного алфавита

11.06.2017, 13:01. Показов 6535. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Построить конечный автомат (КА–распознаватель) для распознания регулярного множества цепочек трехсимвольного алфавита в соответствии с описанием:

Содержит два символов “а”, заканчивается на “ b ”, а символы “а” и "с " не стоят рядом.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.06.2017, 13:01
Ответы с готовыми решениями:

Построить конечный автомат, распознающий среди цепочек из нулей и единиц такие, где на каждом третьем месте 0
Доброго времени суток! Помогите, пожалуйста, с решением задачи, а то совсем никак -_- Постройте...

Построить детерминированный автомат для регулярного выражения
Построить детерминированный автомат для регулярного выражения ((c+a)b*)* Я построил этот автомат...

Построить конечный автомат для принтера
Задание заключается в следующем: Вспомните как задаются номера страниц при выводе на печать, если...

Построить конечный автомат
Здравствуйте, пытаюсь построить конечный автрмат, который бы распознавал только те...

4
477 / 280 / 90
Регистрация: 15.11.2013
Сообщений: 530
13.06.2017, 11:33 2
В чём проблема?
1
0 / 0 / 0
Регистрация: 11.06.2017
Сообщений: 5
13.06.2017, 11:38  [ТС] 3
AdmiralHood, Я сам заочник, ни капли не знаю о чем идёт речь. Скоро экзамен, нужна срочная помощь.
0
477 / 280 / 90
Регистрация: 15.11.2013
Сообщений: 530
14.06.2017, 03:47 4
А здесь ничего не надо знать. Здесь чистая незамутнённая логика. Формулируете, что вам нужно. А нужно, чтобы в строчке два раза встретились буквы a, причём ни перед, ни после них не стояла буква c, и строчка кончалась на b.

Автомат можно задавать разными способами. Один из них — задание в виде графа. Граф — это куча состояний, которые обозначают кружочками. Состояния связаны между собой стрелочками. По стрелочкам автомат переходит от одного состояния к другому. Причём переход возможен только по очередной букве. Каждая буква — это инструкция, которая говорит автомату, в какое состояние ему надо переходить.

Здесь самое главное понять, как автомат запоминает информацию о предыдущих событиях. Вот представьте себе, что у человека специфическое расстройство памяти. Он не помнит, что было вчера. У него есть дом, в доме 100 комнат, и каждая комната что-то означает. Если, например, он утром проснулся в комнате № 23, это значит, что надо позвонить родителям. Если в комнате 56, значит сегодня будет корпоратив. А если в комнате 82, значит и то, и другое. Точно так же автомат. Комната – это состояние. Автомат не помнит, что было раньше. Вся его память заключается в том, в каком состоянии он в данный момент находится. Ваша задача придумать минимальный набор состояний, которые покрывают все существенные для решения вашей задачи ситуации.

Начинаете строить автомат с исходного состояния, которое я обозначу 0. Это состояние означает «не пришло ещё ни одной буквы а, и предыдущая буква была не с». Почему нас волнуют именно буквы а и с? Буква а вообще имеет глобальное значение. Нам нужно их пересчитать и убедиться, что их ровно две. Если больше или меньше, значит строка неправильная. Буква с нас интересует постольку-поскольку за ней не должна следовать буква а, иначе строка тоже будет неправильной.

Если автомат в состоянии 0 получает букву а, он переходит в состояние 1. Оно означает «пришла первая буква а, и перед ней не было буквы с». По букве с автомат переходит из состояния 0 в состояние 2. Оно означает «не было ещё ни одной буквы а, а предыдущая буква была с».

Далее, если в состоянии 1 пришла буква c, то это ошибка, автомат должен перейти в какое-то состояние, которое будет означать ошибку. Из этого состояния автомат не должен выходить и по любой букве должен возвращаться в него. Это состояние я условно обозначу 99. В состояние 99 автомат также должен перейти из состояния 2 по букве а.

Название: 01.png
Просмотров: 205

Размер: 6.3 Кб

Желательно, чтобы из каждого состояния по любой букве можно было бы куда-то перейти. Поэтому в каждом состоянии должен быть определён переход по любой букве. Что будет, если в состоянии 1 придёт буква b? Автомат должен перейти в состояние 3, которое означает «была уже одна буква а, и предыдущая буква была не с».

Что будет, если в состоянии 1 придёт буква a? Автомат должен перейти в состояние 4, которое означает «было уже две буквы а, и предыдущая буква была не с».

Что будет, если в состоянии 2 придёт буква b? Нужно вернуться в состояние 0. Что будет, если в состоянии 2 придёт буква с? Нужно остаться в состоянии 2.

Построить конечный автомат для распознания регулярного множества цепочек трехсимвольного алфавита


И так перебираете каждое состояние по каждой букве. Должно получиться что-то типа

Построить конечный автомат для распознания регулярного множества цепочек трехсимвольного алфавита
1
0 / 0 / 0
Регистрация: 11.06.2017
Сообщений: 5
14.06.2017, 09:52  [ТС] 5
AdmiralHood, Огромное тебе спасибо! ты столько сделал! можно с тобой связаться лично в Вк или по почте? Есть ещё один вопрос. Напиши мне сюда:del
 Комментарий модератора 

Правила форума
4.6. Обсуждение вопросов - только в теме на форуме. Приглашения к обсуждению еще где-либо (в том числе и с помощью системы личных сообщений) запрещены, за исключением коммерческих разделов.
4.12. Не стоит просить или предлагать выслать ответ в icq, e-mail и другие средства общения. Эта просьба все равно не будет выполнена, а сообщение будет отредактировано модератором.
0
14.06.2017, 09:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2017, 09:52
Помогаю со студенческими работами здесь

Построить конечный автомат
Помогите, пожалуйста, построить КА (конеч. автомат), у которого алфавит из двух букв "a, b" и у...

Построить детерминированный конечный автомат
Построить детерминированный конечный автомат, распознающий язык L над алфавитом {a,b}, состоящий из...

Построить детерминированный конечный автомат
Здравствуйте! Пытаюсь разобраться в детерминированных автоматах, буду весьма благодарен за...

Построить конечный детерминированный автомат
Привет всем помогите построить точнее нарисовать нетдетермениванный и детерменированный автомат по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru