- •Государственное образовательное учреждение высшего профессионального образования «Тульский государственный университет»
- •Конспект лекций
- •Информатика
- •Содержание
- •Системы счисления. Позиционные и непозиционные системы
- •2.1. Кодирование текста
- •2.2. Растровая и векторная графика
- •2.3. Представление цвета
- •2.4. Представление звука. Ацп. Цап
- •3.1. Принцип фон Неймана
- •3.2. Общая структурная схема процессора
- •3.3. Арифметико-логическое устройство (алу)
- •3.4. Адрес ячейки памяти
- •3.5. Регистры процессора
- •3.6. Как процессор складывает два числа
- •4.1. Эволюция средств вычислений
- •4.2. Эволюция эвм
- •4.3. Поколения эвм
- •5.1. Эволюция персональных эвм
- •5.2. Классификация эвм
- •6.1. Программное обеспечение
- •6.2. Функции ос
- •6.3. Трансляция программ
- •6.5. Декомпозиция
- •6.6. Объектно-ориентированное программирование
- •7.1. Понятие алгоритма. Свойства алгоритма
- •7.2. Способы записи алгоритма: псевдокод, блок-схема
- •7.3. Преобразование программы в машинные коды. Интерпретаторы и компиляторы
- •7.4. Оптимизация кода для повышения эффективности
- •7.5. Структура ide. Отладка программ
- •8.1. Описание структуры проекта
- •8.2. Описание структуры модуля
- •8.3. Описание элементов программ
- •8.4. Алфавит языка программирования
- •8.5. Идентификаторы, константы, выражения
- •9.1. Целая и вещественная арифметика
- •9.2. Приоритет операций
- •9.3. Встроенные функции. Построение сложных выражений
- •10.1. Встроенные типы данных. Целые типы. Представление знака числа. Арифметическое переполнение
- •10.1.1. Встроенные типы данных
- •10.1.2. Целые типы
- •10.1.3. Представление знака числа
- •10.1.4. Арифметическое переполнение
- •10.2. Вещественные типы. Сопроцессор
- •10.3. Текстовые типы
- •10.4. Логический тип
- •10.5. Оператор присваивания. Совместимость типов по присваиванию
- •11.1. Устройства вывода
- •11.2. Объекты, обеспечивающие вывод данных на экран
- •11.2.1. Перечень компонентов ввода и отображения текстовой информации
- •11.2.2. Отображение текста в надписях компонентов Label, StaticText и Panel
- •11.2.3. Окна редактирования Edit и MaskEdit
- •11.2.4. Многострочные окна редактирования Memo и RichEdit
- •11.2.5. Группа радиокнопок – компонент RadioGroup
- •Ввод и отображение целых чисел — компоненты UpDown и SpinEdit
- •11.2.6. Компоненты выбора из списков — ListBox, CheckBox, CheckListBox и ComboBox
- •11.2.7. Таблица строк — компонент StringGrid
- •11.2.8. Функция InputBox
- •11.2.9. Процедура ShowMessage
- •11.3. Вывод в текстовый файл
- •11.3.1. Объявление файла
- •Назначение файла
- •11.3.2. Вывод в файл
- •11.3.3. Открытие файла для вывода
- •11.3.4. Ошибки открытия файла
- •11.3.5. Закрытие файла
- •11.4. Устройства ввода. Ввод с клавиатуры. Реакция на действия пользователя
- •11.4.1. Устройства ввода
- •11.5. Ввод из файла
- •11.5.1. Открытие файла
- •11.5.2. Чтение данных из файла
- •11.5.3. Чтение чисел
- •11.5.4. Чтение строк
- •12.1. Ветвление
- •12.2. Логические (булевские) операции
- •12.3. Составной оператор
- •12.4. Оператор ветвления if
- •12.5. Оператор ветвления case
- •12.6. Исключительные ситуации
- •13.1. Функции цикла в программе. Циклы с пред- и постусловием
- •13.2. Оператор While. Вечные циклы
- •13.3. Вечные циклы
- •13.4. Оператор repeat. Процедуры inc и dec
- •13.5. Цикл с переменной for
- •13.6. Команды break и continue
- •13.7. Вложенные циклы
- •13.8. Примеры задач с циклами
- •14.1. Объявление массива
- •14.2. Операции с массивами
- •14.2.1. Вывод массива
- •14.2.2. Ввод массива
- •14.2.3. Поиск минимального (максимального) элемента массива
- •14.2.4. Поиск в массиве заданного элемента
- •14.3. Ошибки при использовании массивов
- •15.1. Создание пользовательских функций. Передача аргументов
- •15.2. Глобальные и локальные переменные
- •15.3. Примеры написания пользовательских функций
- •15.4. Процедуры
- •15.5. Процедуры программиста
- •15.6. Передача параметров по ссылке и значению
- •15.7. Перегрузка процедур и функций
- •15.8. Упреждающее объявление процедур и функций (forward)
- •16.1. Основные понятия компьютерной графики
- •16.2. Получение сведений о режимах экрана. Эффекты прозрачности
- •16.3. Графические построения
- •16.4. Построение графиков функций
- •16.5. Использование компонента tChart
- •16.6. Обновление изображения
- •17.1. Анимация на основе операции xor
- •17.2. Буферизация фона
- •17.3. Работа с таймером
- •18.1. Виды диалога
- •18.2. Стандарты пользовательского интерфейса
- •18.2.3. Размеры окон
- •18.2.2. Размеры элементов управления
- •Надписи на элементах управления:
- •18.2.4. Схема расположения
- •19.1. Технология mmx
- •19.2. Мультимедийные аппаратные интерфейсы
- •20.1. Тест Тьюринга
- •20.2. Представление знаний и вывод на знаниях
- •20.3. Модели представления знаний
- •20.4. Вывод на знаниях
- •21.1. Основы телекоммуникаций и распределенной обработки информации
- •21.2. Каналы связи
- •21.2.1. Аналоговые и цифровые каналы
- •21.2.2. Коммутируемые и выделенные каналы
- •21.2.3. Двух- и четырехпроводные каналы
- •21.3. Семиуровневая модель osi
- •21.3.1. Физический уровень
- •21.3.2. Канальный уровень
- •21.3.3. Верхние уровни osi
- •21.4. Управление потоком
- •21.5. Технология "клиент-сервер"
- •22.1. Методы защиты информации
- •22.2. Основы криптографии
- •22.3. Симметричные криптосистемы
- •22.3.1.Моно- и многоалфавитные подстановки
- •22.3.2. Перестановки
- •22.3.3. Гамирование и блочные шифры
- •22.4. Алгоритмы цифровой подписи
- •22.5. Сжатие данных
- •22.5.1. Методы сжатия изображений
- •22.6. Понятие об экономических и правовых аспектах информационных технологий
20.1. Тест Тьюринга
Тест Тьюринга — тест, предложенный Аланом Тьюрингом в 1950 г. в статье «Вычислительные машины и разум» (Computing machinery and intelligence) для проверки, является ли компьютер разумным в человеческом смысле слова. Тьюринг предложил тест, чтобы заменить бессмысленный, по его мнению, вопрос «может ли машина мыслить?» на более определенный.
Тест должен проводиться следующим образом. Судья (человек) переписывается на естественном языке с двумя собеседниками, один из которых — человек, другой — компьютер. Если судья не может надежно определить, кто есть кто, считается, что компьютер прошел тест. Предполагается, что каждый из собеседников стремится, чтобы человеком признали его. Чтобы сделать тест простым и универсальным, переписка сводится к обмену текстовыми сообщениями.
Переписка должна производиться через контролируемые промежутки времени, чтобы судья не мог делать заключения, исходя из скорости ответов. Это правило необходимо, потому что компьютеры работают гораздо быстрее, чем мозг человека.
Тьюринг предсказал, что компьютеры в конечном счете пройдут его тест. Он считал, что к 2000 году компьютер с памятью 1 миллиард бит (около 119 МБ) в ходе 5-минутного теста сможет обмануть судей в 30 % случаев. Это предсказание не сбылось.
Пока что ни одна программа и близко не подошла к прохождению теста. Такие программы, как ELIZA, иногда заставляли людей верить, что они говорят с человеком. Но такие «успехи» не являются прохождением теста Тьюринга. Во-первых, человек в таких беседах не имел никаких оснований считать, что он говорит с программой, в то время как в настоящем тесте Тьюринга человек активно пытается определить, с кем он беседует.
Ежегодно производится соревнование между разговаривающими программами и наиболее человекоподобной, по мнению судей, присуждается приз Лёбнера (Loebner). Есть также дополнительный приз для программы, которая, по мнению судей, пройдет тест Тьюринга. Этот приз еще не присуждался. Самый лучший результат показала программа A.L.I.C.E., выиграв тест 3 раза (в 2000, 2001 и 2004).
20.2. Представление знаний и вывод на знаниях
При изучении интеллектуальных систем традиционно возникает вопрос — что же такое знания и чем они отличаются от обычных данных, десятилетиями обрабатываемых ЭВМ. Можно предложить несколько определений, в рамках которых это становится очевидным.
Данные — это отдельные факты, характеризующие объекты, процессы и явления предметной области, а также их свойства.
При обработке на ЭВМ данные трансформируются, условно проходя следующие этапы:
D1 — данные как результат измерений и наблюдений;
D2 — данные на материальных носителях информации (таблицы, протоколы, справочники);
D3 — модели (структуры) данных в виде диаграмм, графиков, функций;
D4 — данные в компьютере на языке описания данных;
D5 — базы данных на машинных носителях информации.
Знания основаны на данных, полученных эмпирическим путем. Они представляют собой результат мыслительной деятельности человека, направленной на обобщение его опыта, полученного в результате практической деятельности.
Знания — это закономерности предметной области (принципы, связи, законы), полученные в результате практической деятельности и профессионального опыта, позволяющие специалистам ставить и решать задачи в этой области.
При обработке на ЭВМ знания трансформируются аналогично данным.
Z1 — знания в памяти человека как результат мышления;
Z2 — материальные носители знаний (учебники, методические пособия);
Z3 — поле знаний — условное описание основных объектов предметной области, их атрибутов и закономерностей, их связывающих;
Z4 — знания, описанные на языках представления знаний (продукционные языки, семантические сети, фреймы — см. далее);
Z5 — база знаний на машинных носителях информации.
Часто используется такое определение знаний.
Знания — это хорошо структурированные данные, или данные о данных, или метаданные.
Существует множество способов определять понятия. Один из широко применяемых способов основан на идее интенсионала. Интенсионал понятия — это определение его через соотнесение с понятием более высокого уровня абстракции с указанием специфических свойств. Интенсионалы формулируют знания об объектах. Другой способ определяет понятие через соотнесение с понятиями более низкого уровня абстракции или перечисление фактов, относящихся к определенному объекту. Это есть определение через данные, или экстенсионал понятия.
Пример 1.
Понятие «персональный компьютер». Его интенсионал: «Персональный компьютер — это дружественная ЭВМ, которую можно поставить на стол и купить менее чем за $1000».
Экстенсионал этого понятия: «Персональный компьютер — это IBM PC, Macintosh, Compaq…»
Для хранения данных используются базы данных (для них характерны большой объем и относительно небольшая удельная стоимость информации), для хранения знаний — базы данных (небольшого объема, но исключительно дорогие информационные массивы). Базы знаний — основа любой интеллектуальной системы.
Знания могут быть классифицированы по следующим категориям:
Поверхностные — знания о видимых взаимосвязях между отдельными событиями и фактами в предметной области.
Глубинные — абстракции, аналогии, схемы, отображающие структуру и природу процессов, протекающих в предметной области. Эти знания объясняют явления и могут использоваться для прогнозирования поведения объектов.
Пример 2
Поверхностные знания: «Если нажать на кнопку, раздастся звук. Если болит голова, то следует принять аспирин».
Глубинные знания: «Принципиальная электрическая схема звонка и проводки. Знания физиологов и врачей высокой квалификации о причинах, видах головных болей и методах их лечения».
Современные экспертные системы работают в основном с поверхностными знаниями. Это связано с тем, что на данный момент нет универсальных методик, позволяющих выявлять глубинные структуры знаний и работать с ними.
Кроме того, в учебниках по ИИ знания традиционно делят на процедурные и декларативные. Исторически первичными были процедурные знания, то есть знания, «растворенные» в алгоритмах. Они управляли данными. Для их изменения требовалось изменять программы. Однако с развитием искусственного интеллекта приоритет данных постепенно изменялся, и все большая часть знаний сосредоточивалась в структурах данных (таблицы, списки, абстрактные типы данных), то есть увеличивалась роль декларативных знаний.
Сегодня знания приобрели чисто декларативную форму, то есть знаниями считаются предложения, записанные на языках представления знаний, приближенных к естественному и понятных неспециалистам.