Шпора (Шпоры к первому коллоквиуму), страница 5

PDF-файл Шпора (Шпоры к первому коллоквиуму), страница 5 Искусственный интеллект (52959): Ответы (шпаргалки) - 7 семестрШпора (Шпоры к первому коллоквиуму) - PDF, страница 5 (52959) - СтудИзба2019-09-18СтудИзба

Описание файла

Файл "Шпора" внутри архива находится в папке "Шпоры к первому коллоквиуму". PDF-файл из архива "Шпоры к первому коллоквиуму", который расположен в категории "". Всё это находится в предмете "искусственный интеллект" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 5 страницы из PDF

Значением функции является N-й от начала элемент этого списка. Например,(nth 2 '(AT ROBOT (a 6)) ) → ROBOT.(last l)Функция выбирает последний (от начала) элемент списка, являющегося значением ее аргумента.Например, (last '(AT ROBOT (a 6)) ) → (a 6).(cons e l)В отличие от предыдущих функций эта функция является конструктором, т.е. строит новый список,который и выдает в качестве своего результата.

Первым элементом этого списка будет значениеаргумента e, а хвостом списка – значение аргумента l. Например, (cons '(A B C) '(D E F) ) →((A B C) D E F).(append l1 l2)Эта функция осуществляет конкатенацию двух списков, являющихся значением ее аргументов.Например, (append '(A B C) '(D E F) ) → (A B C D E F).(list e1 e2 . . . en)(n≥1)Эта функция имеет произвольное количество аргументов, из значений которых она строит список(количество элементов на верхнем уровне результирующего списка равно количествуаргументов).Например, если переменная X имеет своим значением список (p (q r)), а переменная Y –список (t), тозначение формы (cons X Y) равно ((p (q r)) t),значение формы (append X Y) равно (p (q r) t),значение формы (list X Y)равно ((p (q r)) (t)).Арифметические функции(length l)Значением аргумента l должен быть список, функция вычисляет количество элементов (верхнегоуровня) этого списка. К примеру, значение (length X) равно 2, если переменная X имеет значение(p(q r)).Значениями аргументов нижеследующих функций должны быть числа, над которымипроизводятся арифметические операции.(add1 n)Функция прибавляет число 1 к числу-аргументу и выдает результат в качестве своего значения.(sub1 n)Эта функция вычитает 1 из значения своего аргумента и выдает результат в качестве своегозначения.(+ n1 n2)Значением функции является сумма значений ее аргументов.(- n1 n2)Значением этой функции является разность значений ее аргументов.(mod n1 n2)Функция выполняет деление нацело значение первого аргумента на значение второго, и результатвыдает в качестве своего значения.(rem n1 n2)Результат вычисления этой функции – остаток от деления первого числа на второе.ПредикатыПредикатом обычно называется форма, значение которой рассматривается как логическоезначение «истина» или «ложь».

Особенностью языка Лисп является то, что «ложью» считаетсяпустой список, записываемый как () или nil, а «истиной» – любое другое выражение (частоатом T).(null e)Эта функция проверяет, является ли значение ее аргумента пустым списком: если да, то значениефункции равно T, иначе – ().(eq e1 e2)Функция сравнивает значения своих аргументов, которые должны быть атомамиидентификаторами. В случае их совпадения (идентичности) значение функции равно T, иначе –().(eql e1 e2)В отличие от предыдущей функции, данная функция сравнивает значения своих аргументов,которыми могут быть не только атомы-идентификаторы, но и атомы-числа.

Если они равны, тозначение функции равно T, иначе – ( ). Отметим, что во многих версиях Лиспа для сравнениялюбых атомов используется функция eq.(neq e1 e2)Аналог предыдущей функции, но значения аргументов сравниваются на «не равно».(equal e1 e2)Функция производит сравнение двух произвольных S-выражений – значений своих аргументов.Если они равны (имеют одинаковую структуру и состоят из одинаковых атомов), то значениефункции равно T, иначе – ().(member a l)Значением первого аргумента должен быть атом, а второго – список. Функция производит поискзаданного атома на верхнем его уровне заданного списка. В случае успеха поиска значениефункции равно T, иначе – ( ).(gt n1 n2) или (> n1 n2)Значениями аргументов этой функции должны быть числа. Если первое из них больше второго, тозначение функции равно T, иначе – ().(lt n1 n2) или (< n1 n2)Аналог предыдущей функции, но числа сравниваются на «меньше».Логические функцииТак называются три функции, реализующие основные логические операции.(not e)Эта функция, реализующая «отрицание», является дубликатом функции null: если значениеаргумента равно ( ) («ложь»), то функция выдает результат T («истина»), а при любом другомзначении аргумента выдает результат ( ).(and e1 e2 … ek)(k≥1)Это «конъюнкция».

Функция по очереди вычисляет свои аргументы. Если значение очередного изних равно ( ) («ложь»), то функция, не вычисляя оставшиеся аргументы, заканчивает свою работусо значением ( ), а иначе переходит к вычислению следующего аргумента. Если функция дошла довычисления последнего аргумента, то с его значением она и заканчивает свою работу.(or e1 e2 … ek)(k≥1)Это «дизъюнкция». Функция по очереди вычисляет свои аргументы. Если значение очередного изних не равно ( ) («ложь»), то функция, не вычисляя оставшиеся аргументы, заканчивает своюработу со значением этого аргумента, в противном случае она переходит к вычислениюследующего аргумента.

Если функция дошла до вычисления последнего аргумента, то с егозначением она и заканчивает свою работу.К числу логических функций можно отнести и лисповское условное выражение:(cond (p1 e1,1 e1,2 … e1,k1) … (pn en,1 en,2 … en,kn))(n≥1, ki≥1)Функция cond последовательно вычисляет первые элементы своих аргументов – обращения кпредикатам pi. Если все они имеют значение ( ) («ложь»), тогда функция заканчивает свою работусо значением ( ). Но если был обнаружен предикат pi, значение которого отлично от ( ), т.е. онимеет значение «истина», тогда функция cond уже не будет рассматривать остальные предикаты,а последовательно вычислит формы ei,j из этого i-го аргумента и со значением последнего из нихзакончит свою работу.

Заметим, что поскольку значения предыдущих форм из этого аргументанигде не запоминаются, то в качестве этих форм имеет смысл использовать только такие, которыеимеют побочный эффект, например, функции присваивания значений переменным или печати.Специальные функции(quote e) или 'eЭто функция блокировки вычислений: она выдает в качестве значения свой аргумент, не вычисляяего. Например, значением формы '(car (2)) является само выражение (car (2)).(gensym)Это функция генерации уникальных атомов (символов): при каждом обращении к ней выдаетсяновый атом-идентификатор. Этот идентификатор получается склеиванием специального префиксаи очередного номера (целого числа). Префикс и целое число, от которого начинается нумерациягенерируемых атомов, могут быть установлены заранее, как, например, в языке MuLisp:(setq *gensym-prefix* 'S) (setq *gensym-count* 2)После этого при последовательных обращениях к функции gensym она будет выдавать атомы S2,S3, S4 и т.д.Блочная и связанные с ней функции(prog (v1 v2 … vn) e1 e2 … ek) (n≥0, k≥1)Эту специальную функцию называют «блочной», поскольку ее вычисление напоминаетвыполнение блоков в других языках программирования.

Вычисление функции начинается с того,что вводятся локальные переменные vi, перечисленные в ее первом аргументе, и всем им вкачестве начального значения присваивается пустой список nil. После этого функцияпоследовательно вычисляет остальные свои аргументы – формы ei. Вычислив последнюю из них,функция prog заканчивает работу со значением этой формы, уничтожив перед этим все своилокальные переменные vi .Вычисленные значения всех форм ei, кроме последней, нигде не запоминаются, поэтомуимеет смысл использовать в качестве них только функции с побочным эффектом. Некоторые изэтих функций перечислены ниже.В качестве одной из форм ei может быть записан атом-идентификатор, в этом случае он невычисляется, а трактуется как метка, на которую будет производиться переход внутри этого блока(функцией go).(return e)Это функция досрочного выхода из блока. Она может использоваться только внутри блочнойфункции prog, поскольку завершает вычисление ближайшей объемлющей блочной функции,устанавливая ее значение равным значению аргумента e.(go e)Функция реализует переход по метке.

Аргумент ее не вычисляется, в качестве ее аргументадолжен быть задан идентификатор – одна из меток ближайшей объемлющей блочной функции.Функция go полностью завершает вычисление той формы этой блочной функции, в которую онавходит (на любом уровне), и осуществляет переход на вычисление формы, непосредственноследующей за указанной меткой.(setq v e)Это аналог оператора присваивания.

В качестве аргумента v (он не вычисляется) должно бытьзадано имя переменной, существующей в данный момент. Функция присваивает этойпеременной новое значение – вычисленное значение формы e. Это же значение являетсязначением и самой функции setq, однако оно, как правило, не используется.Следующие две особые функции используются для упрощения записи часто используемыхконструкций (setq V (cdr V)) и (setq V (cons (e V)).(pop v)Аргументом этой функции (он не вычисляется) должно быть имя переменной, существующей вданный момент и имеющей своим значением непустой список. Хвост этого непустого спискаприсваивается в качестве нового значения указанной переменной, а также выступает в качествезначения самой функции pop.(push е v)В качестве второго аргумента этой функции (он не вычисляется) должно быть задано имяпеременной, в качестве первого – произвольная форма. Функция вычисляет эту форму и строитновый список, первый элемент которого – вычисленное значение, а хвост – список, являющийсязначением переменной v.

Результирующий список становится новым значением переменной v изначением самой функции push.Например, если переменная X имеет значение (d (e) g), а переменная U – значение (1 2), тозначение формы (pop X) равно ((e) g), а значение (push U X) равно ((1 2) d (e) g).Основным средством реализации циклических программ в Лиспе является рекурсия.Рассмотрим примеры простейших рекурсивных программ на Лиспе:(listp l) – функция-предикат, проверяющая является ли значение ее аргумента списком (наверхнем уровне). Если да, то значение функции равно T, иначе – ().(defun listp (lambda (x)(cond ((null x) T)((atom x) ( ))( T (listp (cdr x))) )))(memb a l) - функция ищет атом, являющийся значением первого ее аргумента, в списке (наверхнем его уровне), являющемся значением второго аргумента.

В случае успеха поиска значениефункции равно T, иначе – ().(defun memb (lambda (a l)(cond ((null l) nil)((eq a (car l)) T)(T (memb a (cdr l)) ) ))(out a l) - функция удаляет из списка, являющегося значением ее второго аргумента, всевхождения (на верхнем) атома, являющегося значением первого аргумента.(defun out (lambda (a l)(cond ((null l) nil)((eq a (car l)) (out a (cdr l)))(T (cons (car l) (out a (cdr l))))) ))(equal e1 e2) – функция, сравнивающая два произвольных S-выражения – значения своихаргументов.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5139
Авторов
на СтудИзбе
441
Средний доход
с одного платного файла
Обучение Подробнее