Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

Лаба по искусственному интеллекту   Найти похожие ветки 

 
pupus   (2004-07-07 08:57) [0]

Привет всем!
Помогите с лабой по Искусственному интеллекту, препод ниче не обьясняет...
Задание такое:
Разработка синтаксического анализатора abaababababbababaaaba -> S. Правила: ab->S, aS->S, Sb->S, SS->S.
Сделал я ему прогу, там функция одна маленькая, проще простого, так он(препод) говорит, что это не правильно, сделай-ка ты мне поиском в ширину
Никак не могу понять, как ? Поиск в ширину - это к графу надо привезти, матрица смежности и т.д. Но как это к графу привезти ума не приложу.....


 
Fay ©   (2004-07-07 09:03) [1]

Сначала обходишь все вершины смежные начальной, потом все смежне им, и т.д.


 
pupus   (2004-07-07 09:17) [2]

Что такое поиск по графу то я знаю, а вот как Строку типа ababbbababa графом представить?


 
Fay ©   (2004-07-07 09:19) [3]

Покажи старую функцию


 
BoxTer   (2004-07-07 09:21) [4]

у чела вопрос стоит - как к графу привести???


 
Ega23 ©   (2004-07-07 09:23) [5]

А при чём здесь ИИ? Это же обычная формальная грамматика с предикатными функциями.


 
BoxTer   (2004-07-07 09:24) [6]


> Сначала обходишь все вершины смежные начальной, потом все
> смежне им, и т.д.

2FAY - а это, случайно, не поиск в глубину ;-)


 
Fay ©   (2004-07-07 09:31) [7]

Как запомнил, так и написал. 8) На самом деле незвание роли не играет. Назови хоть "к е#еи матери". 8)

У меня препод, помню, охренел, когда я методом "северо-западного угла" пошёл с "юго-западного". А какая разница?! 8)


 
pupus   (2004-07-07 10:35) [8]

function ReplaceSub(str, sub1, sub2: string): string;
var
 aPos: Integer;
 rslt: string;
begin
 aPos := Pos(sub1, str);
 rslt := "";
 while (aPos <> 0) do
 begin
   rslt := rslt + Copy(str, 1, aPos - 1) + sub2;
   Delete(str, 1, aPos + Length(sub1) - 1);
   aPos := Pos(sub1, str);
 end;
 Result := rslt + str;
 form1.label1.caption:=result;
end;

ReplaceSub(label1.caption,"Sb","S");
ReplaceSub(label1.caption,"aS","S");
ReplaceSub(label1.caption,"SS","S");

Вот так во было сделано, говорит это ты сам руками перебираешь, а ни хе..а не поиск ни в ширь ни в глубь


 
Fay ©   (2004-07-07 10:48) [9]

А что она делает?! Мне кажется ничего.


 
Igorek ©   (2004-07-07 11:04) [10]


> BoxTer   (07.07.04 09:24) [6]
>
> > Сначала обходишь все вершины смежные начальной, потом
> все
> > смежне им, и т.д.
>
> 2FAY - а это, случайно, не поиск в глубину ;-)

Неа. В глубину - это когда идешь в глубину, доходишь до дна, потом выныриваешь на один уровень, потом ныряешь в другом направлении (если его нету, снова выныриваешь)...


 
Igorek ©   (2004-07-07 11:16) [11]


> pupus   (07.07.04 08:57)  
> Привет всем!
> Помогите с лабой по Искусственному интеллекту, препод ниче
> не обьясняет...
> Задание такое:
> Разработка синтаксического анализатора abaababababbababaaaba
> -> S. Правила: ab->S, aS->S, Sb->S, SS->S.

Имхо если поиск в ширину, то так:
1 если исходная строка = S то выход
2 проходишь строку посимвольно от первого символа до предпоследнего
3 берешь текущий символ + следующий - получаешь пару
4 ищешь и применяешь одно из правил замены (заменяешь напр. ab на S - в примере это будет первым - строка станет Saababababbababaaaba)
5 если прошли строку до конца, то идем на 1

---
при применении правил замены строишь дерево разбора (если надо); правда при обходе в ширину это вроде сложнее; так что лучше делай в глубину; а еще лучше и так и так;


 
pupus   (2004-07-08 12:52) [12]


> Igorek

Спасибо за объяснение, прога вроде написана, попробую сдать, но граф так и не построил



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.067 c
1-1089639576
mmb
2004-07-12 17:39
2004.07.25
Как залить + и - полупериоды графика разными цветами ?


1-1089364577
hgd
2004-07-09 13:16
2004.07.25
Толщина линии


9-1081921850
Мараканец
2004-04-14 09:50
2004.07.25
Шейдеры


3-1088488183
Akella
2004-06-29 09:49
2004.07.25
Народ подскажите как указать универсальный путь к базе данных


3-1088677826
Lord
2004-07-01 14:30
2004.07.25
Delphi6 - SQL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский