Книга Вычислительное мышление. Метод решения сложных задач, страница 16. Автор книги Пол Керзон, Питер Макоуэн

Разделитель для чтения книг в онлайн библиотеке

Онлайн книга «Вычислительное мышление. Метод решения сложных задач»

Cтраница 16

Но здесь уже не получится использовать рисунки, как сейчас. В информатике для записи правил используют математические обозначения (формальную логику). Языки для описания этой логики немного похожи на языки программирования, но при этом они очень гибкие. Их большое преимущество состоит в том, что их легко обработать на компьютере, и затем на их основе компьютер может строить логические рассуждения. Так логика становится основой для компьютерных программ, которые позволяют решать головоломки.

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


ЕСЛИ <какая-то ситуация> ТО <действие, которое надо выполнить>

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

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

Когда мы записываем правила для создания программы, обобщение идет рука об руку с абстрагированием. Мы скрываем подробности, касающиеся других частей головоломки, чтобы было легче продумывать, как шире обобщить правила. На схеме, иллюстрирующей наше последнее правило, мы использовали несколько абстракций, чтобы описать, как осуществлять сопоставление с образцом. Например, переменная x — это абстракция. Мы абстрагируемся от конкретного числа (то есть опускаем подробности) — правило применимо независимо от числа. Кроме того, мы используем знак вопроса в качестве другой переменной, чтобы абстрагироваться от конкретного положения четвертого шестиугольника в нашем представлении правила. Подобным образом мы абстрагируемся от ориентации схемы — ее можно как угодно вращать или отражать, но она будет соответствовать решаемой головоломке.

Другие головоломки

Еще один простой «Улей»

На рис. 28 представлена новая головоломка. Посмотрите, можно ли использовать приведенные выше правила для ее решения. В процессе разгадывания вы найдете новые правила. Если ни одно из выведенных ранее правил не подойдет, возможно, стоит вернуться к исходным. Помните, что по второму правилу два одинаковых числа не могут находиться рядом. Ответ приведен в конце главы.


Вычислительное мышление. Метод решения сложных задач

Головоломка посложнее

На рис. 29 показана еще одна головоломка, значительно больше и сложнее. Решая ее, выводите новые правила — те, что пригодятся при решении этой головоломки, и те, что могут пригодиться в будущем.


Вычислительное мышление. Метод решения сложных задач

СОВЕТ. Когда будете искать новое правило, обратите внимание на то, что происходит, когда области из трех шестиугольников граничат друг с другом.

Логическое мышление и опыт

Важность логики

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

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

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

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

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

Специалисты за работой

Чем больше у нас опыта в разгадывании головоломок, тем больше правил накапливается в уме и тем быстрее и легче мы решаем новые задачи. Именно так гроссмейстеры играют в шахматы. Они видят в текущих позициях ситуации, похожие на те, что им уже встречались, и делают ход, подсказанный опытом. Это позволяет не перебирать огромное количество ходов наперед, что у человека происходит медленно и порой с ошибками. Компьютеры играют именно так — перебирают массу вариантов и смотрят, какие будут последствия. Люди-шахматисты играют гениально, потому что используют как логическое мышление, так и сопоставление с образцом; кроме того, у них накопилась масса неформальных правил.

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

Если вы хотите стать специалистом в любой области, развивайте навыки сопоставления с образцом и обобщения. Есть универсальный принцип, который позволяет овладеть любым навыком до уровня гения и стать невероятно успешным, — нужно потратить 10 000 часов на тренировки. Столько времени тратят на занятия скрипачи-виртуозы. Подобным образом самые успешные программисты (те, кто стал миллиардерами) примерно столько учились писать программы. Даже тибетские монахи, известные безмятежностью и способностью сострадать, практиковали медитацию примерно столько же времени, чтобы достичь внутреннего покоя.

Вход
Поиск по сайту
Ищем:
Календарь
Навигация