2010/05/24 14:00:00

Логика в информатике

Логика - это фундаментальная основа информатики как науки. Элементы и основы математической логики заложены в логические элементы и логические устройства ЭВМ, в основы алгоритмизации и языки программирования, в процедуры поиска информации в базах данных и в сети Интернет, а также в системах логического программирования, базах знаний и экспертных системах на ЭВМ.

Содержание

Логика в информатике

Логика в информатике как учебной дисциплине была введена в самых первых учебниках информатики Каймина в 1985 году и в учебник информатики Каймина для средних школ в 1987-89гг. Парадокс в том, что первых школьных учебниках информатики Ершова, Кушниренко и многих действующих учебниках информатики для школ и вузов логика отсутствует.

В 2004 году в России были введены Единые экзамены ЕГЭ по информатике, в содержании которых изучение и знание основ логики стало обязательным. Логика в информатике используется в поиске информации в Интернет, в базах данных, в базах знаний, в алгоритмах, алгоритмизации и во всех языках программирования.Российский рынок CRM-систем: оценки, тренды, крупнейшие поставщики и перспективы. Обзор TAdviser 149.1 т

Наибольшее значение логика приобретает в анализе алгоритмов и программ при решении задач на ЭВМ, когда от результатов решения задач зависят оценки на экзаменах или победа на олимпиадах по информатике или программированию.

Отсутствие ошибок в алгоритмах и программах на ЭВМ - ключевой критерий для победы на региональных, российских и международных олимпиадах и чемпионатах по информатике и программированию. Не случайно наши российские школьники и студенты систематически из года в год побеждают на этих компьютерных соревнованиях.

Логика в программировании

Серьёзнейшей проблемой для информатики и компьютерных наук является наличие ошибок в алгоритмах и программах, публикуемых в учебниках и учебных пособиях, а также неумение преподавателями и учителями информатики выявлять и исправлять ошибки в алгоритмах и программах, составляемых учащимися.

Тестирование программ может выявить наличие ошибок в программах, но не может гарантировать их отсутствие. Гарантии отсутствия ошибок в алгоритмах и программах могут дать только доказательства их правильности. Алгоритм не содержит ошибок, если он дает правильные решения для всех допустимых данных.

Единственный путь для преодоления этих проблем является изучение систематическим методам составления алгоритмов и программ с одновременным анализом их правильности в рамках доказательного программирования с самого начала обучения основам алгоритмизации и программирования.

Сложность для преподавателей информатики и профессиональных программистов заключается в том, что они должны уметь писать не только алгоритмы и программы без ошибок, но и при этом писать доказательства правильности своих алгоритмов и программ. Что сейчас не умеют делать ни математики, ни программисты, ни преподаватели информатики.

В результате "профессиональные" программисты пишут программы с большим числом ошибок, которые они не могут ни выявить, ни исправить. Массированное тестирование программ на ЭВМ приносит программистам несомненную пользу, однако не дает гарантий полного избавления от ошибок.

Практика применения и доказательных методов программирования показала, что эта технология вполне доступна студентам математических факультетов, которым вполне по силам написание доказательств правильности алгоритмов, после проверки и тестирования программ на ЭВМ.

Наибольший эффект в освоении технологий доказательного программирования наблюдается на экзаманех по информатике в математических и экономических вузах, где студенты справляются и с решением задач на ЭВМ и написанием доказательств правильности алгоритмов и программ.

Интуитивные методы анализа правильности алгоритмов и программ характерны для олимпиад по информатике и программированию, где победителями и призёрами становятся те студенты, которые освоили технику тестирования программ на ЭВМ и составления алгоритмов и программ без ошибок.

Логика и искусственный интеллект

В информатике проблемы искусственного интеллекта рассматриваются с позиций проектирования экспертных систем и баз знаний. Под базами знаний понимается совокупность данных и правил вывода, допускающих логический вывод и осмысленную обработку информации.

В целом исследования проблем искусственного интеллекта в информатике направлено на создание, развитие и эксплуатацию интеллектуальных информационных систем, включая вопросы подготовки пользователей и разработчиков таких систем.

Логический подход к созданию систем искусственного интеллекта направлен на создание экспертных систем с логическими моделями баз знаний с использованием языка предикатов.

Учебной моделью систем искусственного интеллекта в 1980-х годах был принят язык и система логического программирования Пролог, используемый для создания баз знаний и моделей экспертных систем на ЭВМ.

Базы знаний на языке Пролог представляют наборы фактов и правил логического вывода, записанных языка логических предикатов с использованием лексики русского языка, хорошо понятно русским, казахам, украинцам — всем русскоязычным людям. Известны случаи написания программ и баз знаний с использованием русскоязычных интерпретаторов Пролога на казахском языке.

Логическая модель баз знаний позволяет записывать не только конкретные сведения и данные в форме фактов на языке Пролог, но и обобщенные сведения с помощью правил и процедур логического вывода и в том числе логических правил определения понятий, выражающих определенные знания как конкретные и обобщенные сведения.

В целом исследования проблем искусственного интеллекта в информатике в рамках логического подхода к проектированию баз знаний и экспертных систем направлено на создание, развитие и эксплуатацию интеллектуальных информационных систем, включая вопросы обучения студентов и школьников, а также подготовки пользователей и разработчиков таких интеллектуальных информационных систем

Логика и логическое программирование

'Логическое программирование' — парадигма программирования, основанная на автоматическом доказательстве теорем, с использованием механизмов логического вывода информации на основе заданных фактов и правил вывода.Язык Пролог и логическое программирование и широко используются для создания баз знаний и экспертных систем и исследований в сфере искусственного интеллекта на основе логических моделей баз знаний и логических процедур вывода и принятия решений.

Язык и система логического программирования Пролог основаны на языке исчисления предикатов, представляющей собой подмножество логики первого порядка. Основными в языке Пролог являются понятия фактов и правил логического вывода, а также запросы на поиск и вывод информации в базах знаний.

Процедуры логического вывода и принятия решений, на основе которых система логического программирования Пролог делает логические выводы и дает осмысленные ответы. Факты в языке Пролог описываются логическими предикатами с конкретными значениями. Правила в Прологе записываются в форме правил логического вывода с логическими заключениями и списком логических условий.

Логика в базах данных

База данных — объективная форма представления и организации совокупности данных, систематизированных таким образом, чтобы эти данные могли быть найдены и обработаны с помощью ЭВМ. Базы данных применяются во всех сферах человеческой деятельности, сопряжённых с учётом и хранением информации.

Разделяют плоские базы данных, в которых вся информация располагается в единственной таблице, каждая запись в которой содержит идентификатор конкретного объекта и реляционные базы данных, состоящие из нескольких таблиц, связь между которыми устанавливается с помощью совпадающих значений одноимённых полей.

реляционная модель баз данных де-факто является стандартом. В реляционных базах данные хранятся в виде таблиц, состоящих из строк и столбцов. Каждая таблица имеет собственный, заранее определенный набор именованных полей. Столбцы таблиц реляционной базы могут содержать скалярные данные фиксированного типа, например числа, строки или даты.

Поиск информации в реляционных базах данных проводится с помощью языка запросов SQL (англ. Structured Query Language — язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, поиска и модификации информации в базах данных.

Язык запросов SQL к реляционным базам данных состоит из операторов определения, поиска и обработки информации в базах данных. Операторы поиска информации содержать логические условия поиска, которые могут быть простыми и сложно составными.

Простые условия в языке SQL имеют вид равенств и неравенств типа имя = значение, где имя - это имя столбца в таблице, а значение - конкретное числовое или символьное значение (в зависимости от типа столбца в таблице).

Сложносоставные условия в запросах на языке SQL записываются с использованием логических связок AND (И), OR (ИЛИ), NOT (НЕ), выражающих логические высказывания - условия поиска информации в реляционных базах данных.

С логической точки зрения условия поиска в запросах SQL полностью соответствуют исчислению высказываний (с равенствами) - полностью эквивалентно логике высказываний Аристотеля - автора первого в истории учебника по логике и первых трех законов логики (законов Аристотеля).

См. также

информация

информатика

база данных

программирование

Интернет-технологии

ЕГЭ по информатике и ИКТ

логическое программирование

методология программирования

доказательное программирование

Текст заголовка

Литература

  • Каймин В.А. Информатика. Учебник для студентов. М.: ИНФРА-М, 1998-2009.
  • Каймин В.А. Информатика. Учебник для поступающих. М.: Проспект, 2009.
  • Каймин В.А. Информатика. Пособие к экзаменам. М.: РИОР, 2008.
  • Иван Братко Алгоритмы искусственного интеллекта на языке PROLOG = Prolog Programming For Artificial Intelligence. — М.: «Вильямс», 2004. — С. 640. — ISBN 0-201-40375-7

  • Хант Э. Искусственный интеллект = Artificial intelligence / Под ред. В. Л. Стефанюка. — М.: Мир, 1978. — 558 с.

  • К. Дж. Дейт Введение в системы баз данных = Introduction to Database Systems. — 8-е изд. — М.: «Вильямс», 2006. — С. 1328. — ISBN 0-321-19784-4

Интернет-ссылки