Программирование на языке Пролог для искусственного интеллекта
Пример программы: родственные отношения
Пролог - это язык программирования, предназначенный для обработки символьной нечисловой информации. Особенно хорошо он приспособлен для решения задач, в которых фигурируют объекты и отношения между ними. На рис. 1.1 представлен пример - родственные отношения. Тот факт, что Том является родителем Боба, можно записать на Прологе так: родитель( том, боб).
Здесь мы выбрали родитель в качестве имени отношения, том и боб - в качестве аргументов этого отношения. По причинам, которые станут понятны позднее, мы записываем такие имена, как том, начиная со строчной буквы.
Программирование на языке Пролог для искусственного интеллекта
В средние века знание латинского и греческого языков являлось существенной частью образования любого ученого. Ученый, владеющий только одним языком, неизбежно чувствовал себя неполноценным, поскольку он был лишен той полноты восприятия, которая возникает благодаря возможности посмотреть на мир сразу с двух точек зрения. Таким же неполноценным ощущает себя сегодняшний исследователь в области искусственного интеллекта, если он не обладает основательным знакомством как с Лиспом, так и с Прологом - с этими двумя основополагающими языками искусственного интеллекта, без знания которых невозможен более широкий взгляд на предмет исследования.
Сам я приверженец Лиспа, так как воспитывался в Массачусетском технологическом институте, где этот язык был изобретен. Тем не менее, я никогда не забуду того волнения, которое я испытал, увидев в действии свою первую программу, написанную в прологовском стиле. Эта программа была частью знаменитой системы Shrdlu Терри Винограда. Решатель задач, встроенный в систему, работал в "мире кубиков" и заставлял руку робота (точнее, ее модель) перемещать кубики на экране дисплея, решая при этом хитроумные задачи, поставленные оператором.
Решатель задач Винограда был написан на Микропленнере, языке, который, как мы теперь понимаем, был своего рода Прологом в миниатюре. Любой прологоподобный язык заставляет программиста мыслить в терминах целей, поэтому, несмотря на все недостатки Микропленнера, достоинством этой программы было то, что в ее структуре содержались многочисленные явные указания на те или иные цели. Процедуры-цели "схватить", "освободить", "избавиться", "переместить", "отпустить" и т.п. делали программу простой и компактной, а поведение ее казалось поразительно разумным.
Решатель задач Винограда навсегда изменил мое программистское мышление. Я даже переписал его на Лиспе и привел в своем учебнике по Лиспу в качестве примера - настолько эта программа всегда поражала меня мощью заложенной в ней философии "целевого" программирования, да и само программирование в терминах целей всегда доставляло мне удовольствие.
Однако учиться целевому программированию на примерах лисповских программ - это все равно, что читать Шекспира на языке, отличном от английского. Какое-то впечатление вы получите, но сила эстетического воздействия будет меньшей, чем при чтении оригинала. Аналогично этому, лучший способ научиться целевому программированию - это читать и писать программы на Прологе, поскольку сама сущность Пролога как раз и состоит в программировании в терминах целей.
В самом широком смысле слова эволюция языков программирования - это движение от языков низкого уровня, пользуясь которыми, программист описывает, как что-либо следует делать, к языкам высокого уровня, на которых просто указывается, что необходимо сделать. Так, например, появление Фортрана освободило программистов от необходимости разговаривать с машиной на прокрустовом языке адресов и регистров. Теперь они уже могли говорить на своем (или почти на своем) языке, только изредка делая уступки примитивному миру 80-колонных перфокарт.
Однако Фортран и почти все другие языки программирования все еще остаются языками типа "как". И чемпионом среди этих языков является, пожалуй, современный модернизированный Лисп. Так, скажем, Common Lisp, имея богатейшие выразительные возможности, разрешает программисту описывать наиболее "выразительно" именно то, как что-либо следует делать. В то же время очевидно, что Пролог порывает с традициями языков типа "как", поскольку он определенным образом направляет программистское мышление, заставляя программиста давать определения ситуаций и формулировать задачи вместо того, чтобы во всех деталях описывать способ решения этих задач.
Си - универсальный язык программирования. Он тесно связан с системой UNIX, так как был разработан в этой системе, которая как и большинство программ, работающих в ней, написаны на Си. Однако язык не привязан жестко к какой-то одной операционной системе или машине. Хотя он и назван "языком системного программирования", поскольку удобен для написания компиляторов и операционных систем, оказалось, что на нем столь же хорошо писать большие программы другого профиля.
Многие важные идеи Си взяты из языка BCPL, автором которого является Мартин Ричардс. Влияние BCPL на Си было косвенным - через язык B, разработанный Кеном Томпсоном в 1970 г. для первой системы UNIX, реализованной на PDP-7.
BCPL и B - "бестиповые" языки. В отличие от них Си обеспечивает разнообразие типов данных. Базовыми типами являются символы, а также целые и числа с плавающей точкой различных размеров. Кроме того, имеется возможность получать целую иерархию производных типов данных из указателей, массивов, структур и объединений. Выражения формируются из операторов и операндов. Любое выражение, включая присваивание и вызов функции, может быть инструкцией. Указатели обеспечивают машинно-независимую адресную арифметику.
Если Вы читаете этот документ, а также если у Вас установлен Windows 95/98 (а наше личное мнение такое, что эта операционная система наиболее сбалансирована с точки зрения интерфейса и удобства работы), значит, Вы уже столкнулись с проблемой виртуального домашнего сервера, а точнее, с проблемой его отсутствия! Эта небольшая статья поможет Вам скачать и установить один из лучших серверов - Apache, а также те приложения, из-за отсутствия которых народ в бешенстве сметает все остальные сервера (например, Sambar Server) со своего многострадального жесткого диска и устанавливает Apache для Windows 95/98. Имеются в виду, конечно, Perl, PHP3 и MySQL, также работающие под Windows. Прочитав эту статью и скачав дистрибутивы, Вы будете вооружены всеми инструментами, которые так необходимы для профессиональной работы в Web!
Основное преимущество PIC-контроллеров заключается в их низком потреблении при высоком быстродействии, что очень полезно в приборах с автономным питанием. Еще большей экономии энергии можно достичь при использовании дежурного режима. При этом основное время микроконтроллер находится в режиме sleep, при котором приостанавливается выполнение программы, выключается тактовый генератор, но может продолжать свою работу Watch Dog таймер и некоторые периферийные устройства. Выход из этого режима может производиться по-разному, в зависимости от типа контроллера.
Например, можно запрограммировать Watch Dog таймер («собаку») на определенный период, при срабатывании которого контроллер «проснется», опросит свои входы и, если нужно, перейдет к процедуре обработки. Если никаких действий совершать не нужно, он выполнит команду SLEEP и будет находиться в этом состоянии до следующего срабатывания таймера. При выполнении процедуры обработки следует периодически сбрасывать «собаку» для предотвращения те повторного срабатывания. Используя подобную методику, можно "строить приборы, не требующие выключателя питания, различные сигнализирующие и контрольные приборы.
Винду, как один большой глюк можно исследовать бесконечно. Но, в процессе изучения, винда часто падает и очень серьёзно. В конце концов мне надоело её ставить (или обновлять). Помните как в ДОСе: sys c:, а затем переносится папочка ДОС... Так вот с тех пор произошли существенные изменения. Исчезла необходимость команды sys с:! Для такого изврата необходимо только одно условие - два винчестера. Думаю это уже не проблема, так как винты дешевеют быстрее чем ломаются и найти маленький винт на пару гиг ещё можно. (У меня маленькая дискетка на 8 гб :)
Зачем это надо?
1. Мне лень переустанавливать винды. Сам процесс занимает немного времени, но установка остальных программ является настоящим адом.
2. Люблю брать различные компашки с различным софтом и смотреть как он работает. После софта в реестре остаётся много различного мусора, который очень сильно влияет на размер реестра, и в конце концов, на скорость машины.
3. На работе часто приходится устанавливать винды на новые машины, а кому понравится когда его отвлекают.
4. Дома стоит Миллениум, из которого убраны руками множество ненужных на мой взгляд функций. Второй раз повторить это будет сложно.
Справочник по средствам администрирования и компьютерных терминов
Справочник по средствам администрирования Windows XP
В справочнике описаны средства администрирования, их назначение и выполняемая работа, места расположения и включение. Средства Администрирования открываются по интерактивной ссылке.
Встроенный модуль «Диагностика сети» используется для сбора и отображения информации об оборудовании и операционной системе, о настройке Интернета, модема и сетевого адаптера.
Словарь компьютерных терминов
Расшифровка компьютерных терминов употребляемых нами для обозначения комплектующих, действий, работы, процессов в системе.
Предупреждение:
Справочник является средством для ознакомления и обучения, а не руководством к действию.
Неверные действия при изменении параметров, могут серьезно повредить систему. Перед изменением параметров создайте резервную копию всех важных данных, имеющихся на компьютере.
Вся ответственность за нарушение работоспособности компьютера лежит на Вас
При описании протоколов взаимодействия или систем, которые совместно используют определенные структуры данных, требуется определить типы данных, передаваемые этими протоколами или совместно используемые различными системами. Для того чтобы определить эти типы данных, требуется специальная нотация. Такой нотацией является ASN.1.
Данная нотация, с одной стороны, интуитивно понятна, а с другой стороны, может использоваться как протоколами, так и программными системами. Неотъемлемой частью ASN.1 являются базовые правила представления BER (Basic Encoding Rules). BER описывает принцип представления любой величины в рамках стандарта ASN.1. Практически все величины представляются в виде последовательности 8-битных октетов. Восьмой бит октета считается самым старшим. BER позволяет представить величину в виде последовательности 8-битных октетов несколькими способами. Имеется также поднабор правил представления DER (Distinguished Encoding Rules), который определяют однозначные способы представления величин в ASN.1.
Изначально Maya предназначалась для крупных студий. В известной степени это отразилось и на текущей версии программы, хотя в нее не вклрчены примеры сложных сцен, а библиотеки материалов, маркировки меню и клавиатурные комбинации представлены
в минимальном объеме.
Для начала посмотрим на историю развития компьютерной графики в целом и программы Maya в частности.
Первые компьютеры появились в 40-х годах XX века, но только недавно они стали использоваться для создания художественных изображений. В 50-х годах идея об использовании технологии для создания визуальных эффектов была реализована путем создания телевизоров, осциллографов и экранов радаров. Первым глобальным шагом в этом направлении была, вероятно, придуманная в 1961 году Иваном Сазерлендом система Sketchpad, положившая начало эре компьютерной графики. С помощью светового пера пользователи могли создавать рисунки непосредственно на поверхности экрана. Векторная графика представляет собой примитивный штриховой рисунок, часто использовавшийся в первых видеоиграх и кино.
В 1967 году Сазерленд начал совместную работу с Дэвидом Эвансом с целью создания учебного курса компьютерной графики, в котором были бы слиты воедино искусство и наука. Университет штата Юта, в котором были начаты эти исследования, заработал
хорошую репутацию в области исследования компьютерной графики и привлек людей, которые впоследствии сыграли важную роль в развитии данной отрасли. Среди них были: Джим Кларк — основатель компании Silicon Graphics Inc., Эд Кэтмул — один из первопроходцев в области создания фильмов с помощью компьютера и Джон Вэрнок — основатель компании Adobe Systems и разработчик таких известных продуктов, как Photoshop и Postscript.
Активная ячейка выделяется рамкой. Чтобы сделать ячейку активной, необходимо клавишами управления курсором подвести рамку к этой ячейке или щелкнуть в ней мышью.
Для выделения нескольких смежных ячеек необходимо установить указатель мыши в одну из ячеек, нажать левую кнопку мыши и, не отпуская ее, растянуть выделение на всю область. Для выделения нескольких несмежных групп ячеек следует выделить одну группу, нажать клавишу Ctrl
Из-за обилия особенностей и функций Director MX может сначала вас испугать.
Нам не хочется перегружать вас всеми подробностями сразу. Поэтому мы начнем со знакомства с наиболее практическими и наиболее распространенными сторонами Director MX, используемыми для создания реальных программ.
С помощью этой книги вы имеете возможность изучить Director MX интуитивным методом, одновременно практикуясь в применении некоторых приемов и быстрых переходов, обычно используемых в Director MX разработчиками реальных приложений. Каждая глава строится на основе предыдущих глав и добавляет новые возможности Director MX в ваш творческий набор инструментов.
Педагогические приемы, используемые в главах этой книги, основаны на понятии «обучение через действие». Эти методы являются синтезом многолетнего опыта авторов по преподаванию мультимедийного программного обеспечения в качестве провайдеров учебных услуг компании Macromedia (Macromedia Training Providers).
Вот уже несколько десятков лет Корпорация Майкрософт, начинавшая свое существование как малюсенькая фирма Билла Гейтса, изобретателя машинного языка Basic, является главным и чуть ли не единственным законодателем «моды» в программном обеспечении компьютера. Подавляющее большинство пользователей ПК (персонального компьютера) всего мира, независимо от их желания, используют в своей работе операционную систему Windows и многие программы-приложения, созданные той же Корпорацией Microsoft.
Кстати сказать, и прежняя операционная среда, которая зовется MS-DOS и в которой ПК работали двадцать-тридцать лет (а многие пользователи предпочитают и теперь в ней трудиться), тоже детище Билла Гейтса, как и альтернативная Windows операционная система OS/2. Лишь две другие операционные системы — BeOS и Linux — сумели «пробиться» сквозь авторитет Майкрософта и отвоевали себе некоторое количество пользователей. Число ПК, работающих в системах BeOS и Linux, пока не превышает 10 процентов от общего числа ПК конструкции IBM. Станции Macintosh фирмы Apple основаны на системе Мае изначально и конкурируют не столько с Корпорацией Майкрософт, сколько с принципами IBM. К тому же, в последнее время, вот уже лет пять Apple усиленно сближается с Microsoft и не выпускает никаких своих приложений и версий без согласования с Биллом Гейтсом.
Глобальные сети компьютеров. Практическое введение в Internet
Что же представляет собой сеть Internet, и какие возможности она способна вам предоставить?
В конце 60-х годов стартовал проект создания глобальной сети, способной объединить компьютеры, расположенных в разных городах, странах или даже на разных континентах. Этот проект финансировался американским правительством в рамках военного агенства DARPA (Defense Advanced Research Projects Agency). В результате была создана сеть DARPANET, а также несколько других сетей, обслуживающих военно-космическую промышленность США.
Не углубляясь в историю, отметим, что в настоящее время сеть Internet объединила многие глобальные сети и насчитывает миллионы серверов. Эти серверы разбросаны по всему миру.
Практически каждый, кто имеет компьютер с модемом (можно не особенно мощный), может подключиться к сети Internet. Благодаря различным коммерческим организациям и благотворительным программам сеть Internet стала теперь доступна и в нашей стране, причем не только для "новых русских", но и для студентов, и даже для школьников. В нашей книге вы найдете всю информацию, необходимую для подключения к сети Internet.
За последнее десятилетие в связи с развитием рыночных отношений в России появился устойчивый спрос на автоматизацию работы с документами в организации бизнеса. Огромный потенциальный спрос на программы и услуги в области автоматизации делопроизводства вызван целым рядом причин.
С документами работают абсолютно асе организации и большое количество частных лиц. Практически каждая организация сталкивается с проблемами в делопроизводстве, даже если речь не идет об автоматизации: документы теряются, не контролируются и т. д.
За счет улучшения ведения делопроизводства предприятия и организации получают реальный шанс улучшить качество своего управления, что является одной из актуальнейших задач современной российской экономики.
Секретари и лица, отвечающие в организациях за ведение делопроизводства часто стремятся повысить свою квалификацию.
Возросли запросы пользователей на усовершенствованные программы автоматизации делопроизводства, способные интегрироваться с многочисленными автоматизированными рабочими местами, информационными и прикладными системами.
Целый ряд национальных особенностей в ведении делопроизводства, языке и культуре не позволяют использовать западные готовые прикладные решения. Однако появляется все большее количество российских производителей, предлагающих недорогие качественные решения в этой области, растет квалификация пользователей. Это дает надежду на то, что перспективы развития отрасли достаточно благоприятны.
Достижения последних лет в вычислительной технике, обширный рынок сравнительно недорогих компьютеров и принтеров позволили успешно использовать персональный компьютер в делопроизводстве. Сегодня развитие малого и среднего бизнеса не обходится без компьютера в офисе организации.