Как стать автором
Обновить

Я задачи бы решал, пусть меня научат

За давностью лет уже довольно сложно сказать когда именно меня впервые заинтересовал данный вопрос, но, среди всех моих увлечений, решение задач оказалось, пожалуй, одним из самых трудно уловимых. Начало моему интересу положил взорвавший мне однажды голову вопрос: “Как я должен решать задачи, которые я никогда ранее не решал и о которых я ничего толком не знаю?”. Как можно было догадаться, ответить на него мне никто не смог. Было, конечно, обидно, но интерес из-за этого не угас, хотя философствования на долгое время заменила практика. Шли годы и постепенно стали открываться все новые и новые грани данного вопроса, вырисовывая общую картину. Вот об общей картине я и предлагаю поговорить.

Немного истории

При всей своей загадочности на сегодняшний день, направление не сказать что новое. Один из самых широко известных аппаратов в этой области был заложен, наверное, еще Сократом, а доведен до своего оформленного вида Аристотелем. Да, я говорю об Аристотелевской логике. Сейчас это может быть не так очевидно, но формальная логика создавалась не для вычислительных систем, а для людей и именно с целью более эффективного поиска ответов и решений. Более того, она довольно долго именно так и использовалась, пока в районе XIX века все не пошло кувырком. С тех пор появилось такое количество “логик”, что на сегодняшний день, мало кто слово “логика” ассоциирует с формальной логикой. Но, формальная логика, естественно, никуда не далась и глупо было бы предполагать, что ничего более сложного и мощного не появилось.

Так уж исторически сложилось, что вопросом решения задач больше всего интересовались именно математики. Если говорить о XX веке, то я бы упомянул двух из них: Анри Пуанкаре и Джордж Пойа. Помимо них в прошлом веке отличилось и большое количество других людей, но давайте идти по порядку. Пуанкаре оказался удивительной личностью во многих отношениях, в нашем же вопросе он ухитрился сформировать направление развития одной из областей психологии на многие годы вперед. Направление это нынче несет название CPS (Complex Problem Solving). Заслуга же Пуанкаре тут заключается в том, что он выдвинул, так называемую четырехстадийную схему процесса решения, включавшую: подготовку, инкубацию, озарение и проверку. Таким образом, он заострил внимание на давно известном факте существования инсайтов / озарений, т.е. на неожиданном приходе решений. Заметьте, что уже Пуанкаре понимал, что озарение не бывает без подготовки и инкубации, т.е. уже он понимал, что процесс озарений вполне управляем, пусть это и не так просто и прямолинейно.

Пойа же шел с противоположной стороны, а именно со стороны осязаемого и понятного общего подхода к решению задач. Апогеем его работы стало “Математическое открытие”. В каком-то смысле, если ребенок задается вопросом “как решать задачи?”, то он хочет знать именно то, что написано в этой книге. Суть на удивление проста и ориентирована прежде всего на школьников, так как Пойа был учителем математики. Кто-то может вообще не найти ничего нового в его работе, отмахнувшись фразами вроде “это всего лишь вычисления на графоном представлении знаний” и т.п., но “Математическое открытие” показывает очень важный аспект, а именно, что можно описать процесс поиска решения в общем виде без потери общности.

В этом месте стоит упомянуть еще и нашего соотечественника, Генриха Альтшуллера, основателя ТРИЗ (Теории Решения Изобретательских Задач). Если Пойа работал с детьми и просто пытался найти способы учить лучше и эффективней, то Альтшуллер замахнулся на “святое”, а именно на акт творчества (точнее изобретательства). Думаю многим знакомы задачи, которые причисляются к творческим, т.е. не имеющие фиксированного алгоритма решения. Именно они и зацепили Альтшуллера, так что он взял… и написал для них алгоритмы решения. Несколько десятков алгоритмов, если быть точным. Случайно забредшему человеку в них можно легко потеряться, а понять, как это вообще может работать, не представляется простой задачей, но суть очень занимательна. Изюминка ее заключается в том, что это первый (и пока единственный, похоже)  гибрид бессознательного подхода, подсвеченного Пуанкаре и осознанного процесса, детально расписанного Пойа. Именно поэтому описанные алгоритмы ярковыраженно рекурсивно-цикличные.

Достижения на этом не прекратились, хотя настолько ярких личностей и результатов мне больше неизвестно. Дальнейшие достижения перешли больше в плоскость психологии, что имеет свои сложности. Дело в том, что при всей своей ответственности, психологи изначально имели фокус существенно смещенный в сторону от обучения. Привело это к тому, что удивительных результатов было получено невероятно много, но все они оказались изолированы от областей, занимающихся непосредственно решением задач. В результате, история CPS это отдельная тема, включающая множество имен, вроде: A. Newell, H. Simon, Stellan Ohlsson, Dietrich Dörner (у него, кстати, есть очень познавательная книга “Логика неудач”) и т.д..

А нужно ли это вообще хоть кому-то?

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

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

Судите сами, десятилетия упорного труда были положены на то, чтобы сделать разработку предсказуемой и сводимой к типовым задачам. Специализированные языки, framework'и, среды разработки, паттерны и best practices, все сделано для того, чтобы быстро получать предсказуемый результат. Вот только чем больше мы создаем, тем сложнее системы становится, и тем больше проблем возникает на стыке. Если повезет, то однажды, все составные части станут идеальными, а языки просто не позволят нас совершать ошибки, но все это будет касаться лишь отдельных, изолированных подсистем.

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

А на практике это вообще работает?

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

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

При все своей опоре на знания, решение проблем, это тоже навык. Я бы даже сказал, это очень большой комплекс навыков. Худшая часть заключается в том, что в основе лежат мыслительные навыки, самые мистические "звери" из ныне известных. Плохо понятно о чем я? Не мудрено, давайте посмотрим на простой пример. Как научиться решать стереометрические задачи?

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

Не знаю что это, но мне два

А вот и финальное разочарование, если и есть кто-то, кто занимается изучением / обучением данному вопросу, то мне они неизвестны. Можно попытаться сделать ставку на ТРИЗ, как на одну из немногих проверенных временем систем, но и у нее есть свои сложности и проблемы. Одна из них, проблема обобщения, с которой активно пытаются бороться. Если вы никогда не касались ТРИЗ, то базовое введение может оказаться очень полезным, особенно подходы к работе с проблемами. Однако, как ни крути, но многих известных ныне вещей вы там не найдете.

Простым примером может служить громадный пласт результатов психологических исследований за последние полвека. Если эта часть прошла мимо вас, то можно краем глаза взглянуть, например, на LessWrong. Там можно обнаружить неплохую подборку особенностей человеческого восприятия, которые способны серьезно повлиять на вашу способность решить ту или иную проблему (и не только).

Немного о первых шагах

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

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

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

Если задача слишком сложна, чтобы угадать решение, значит мы угадываем (вспоминаем) эвристику в место решения. Для этого придется хорошенько поработать и классифицировать задачи и решения, но эффект на лицо, всего десяток типовых задач и целый пласт проблем решен. Мы идем все дальше и дальше, можно встретить и эвристики для угадывания эвристик. Все обучение начинает крутиться вокруг эвристик и угадывания, но что же в этом случае случиться с изучением проблемы?

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

Эффект будет вполне ожидаемый и всем хорошо знакомый. Просто если мы не можем прийти к решению сразу, то мы просто приходим к выводу, что наших знаний недостаточно и нам нужны новые знаний, в частности, знания о том, как решать эту самую ситуацию с которой мы столкнулись. Знакомо, не правда ли? Неприятность тут заключается в том, что мы перестаем погружаться в проблемы и полностью теряем все навыки, которые могли бы приобрести в процессе. Если заниматься изучением проблем день за днем, то постепенно начинаешь ориентироваться в незнакомых направлениях, привыкаешь выстраивать системы с нуля и находить их сильные и слабые стороны (и многое другое). Но всего этого не случится, если весь процесс изучения проблем просто уйдет из жизни в погоне за быстрым решением. Вот и получается, что за слоган "спроси и гугла" придется расплачиваться весьма неожиданным образом.

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

Литература

  • Пойа, Дьёрдь "Математическое открытие" (1976)

  • Перлз, Фридрих "Опыты психологии самопознания" (1951)

  • Дернер, Дитрих "Логика неудачи" (1989)

  • "The Process of Solving Complex Problems" Andreas Fischer, Samuel Greiff, and Joachim Funke (2011)

  • "The Problems with Problem Solving: Reflections on the Rise, Current Status, and Possible Future of a Cognitive Research Paradigm" Stellan Ohlsson (2008)

  • "Constraint Relaxation and Chunk Decomposition in Insight Problem Solving" Günther Knoblich, Stellan Ohlsson (1999)

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.