Главная страница
    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.039 c
14-1089257648
Aldor_
2004-07-08 07:34
2004.07.25
Установка ХР


11-1077908963
ALeX.B.
2004-02-27 22:09
2004.07.25
Помогите! Нужен FTPSERVER под KOL!!! Не INDY и ICS!


1-1089379025
DelphiNew
2004-07-09 17:17
2004.07.25
Не раскрывается TreeView


1-1089125866
DDDeN
2004-07-06 18:57
2004.07.25
TrackBar как в регуляторе громкости


1-1089297274
lion
2004-07-08 18:34
2004.07.25
параметры файла





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский