Люк Брабандер - Забытая сторона перемен. Как творческий подход изменяет реальность
Одна задача может быть и детской игрушкой, и настоящей головоломкой. Все зависит от размера привходящей информации. Интересная разновидность взаимоотношений, которая заслуживает изучения, – это связь между вычислением необходимого времени и проработанным количеством информации. Возможны практически все сценарии.
Иногда сложность проблемы не зависит от объема информации. Это мечта для пользователя и кошмар для продавца компьютеров, потому что он не может больше увеличивать цену за счет этого! Присвоение новых автомобильных номеров, к примеру, требует усилий, которые ни в коей мере не зависят от количества номеров в пользовании.
Чаще все-таки время расчетов увеличивается пропорционально объему проработанной информации. Это линейная функция, как в случае суммы, где удвоение количества чисел, которые нужно сложить, попросту увеличивает объем работы вдвое.
В большинстве случаев, тем не менее, сложность увеличивается быстрее, чем количество информации, как показано на рис. 5.2. Сортировка миллиона карточек – это намного больший объем работы, чем тысяча отдельных сортировочных процедур для тысячи карточек, и компания, выросшая втрое, должна ввести систему учета, возможно, в десять раз более сложную, чем та, которую она заменила.
Рис. 5.2. Соотношение объема информации и сложности работы
Практически для всех задач время расчетов увеличивается намного быстрее, чем объем задействованной информации.
Небольшое упражнение, которое мы проделали, наглядно демонстрирует эффект снежного кома. Количество возможных комбинаций взлетает (математики называют это комбинаторным взрывом), и за определенным порогом эта задача превышает возможности даже самых современных компьютеров.
Выражение, которое мы цитировали, можно изменить на «ядерный взрыв» в случае с шахматами, где предвосхищение даже десяти ходов попросту находится за пределами того, что может сегодня информатика.
Вопреки нашим предположениям сегодня пределы расчетов очень редко связаны с трудностью самих расчетов. Чаще они возникают из-за объема информации, которую надо проработать, и необходимости астрономическое количество раз повторить простые расчеты.
И здесь мы должны снова взглянуть на вопрос и обратиться к нашим творческим способностям, которые, если только мы уверены в них, всегда дадут нам преимущество перед любой машиной.
Возвращаясь к начальной задаче – просто измените свое восприятие, подойдите к делу иначе! Попытайтесь увидеть не просто 12 случайных чисел, поищите что-нибудь необычное, какую-нибудь закономерность. Посмотрев на 12 чисел боковым, латеральным, взглядом, убеждаемся, что все они кратны трем, кроме 53 и 17, состоящих из чисел кратных трем плюс 2. Эврика!
Дело в том, что 100 (сумма, которую нам нужно получить) – это число кратное трем плюс 1. Решение, следовательно, обязательно включит в себя 53 и 17. Это единственный способ создать число кратное трем плюс 1, то есть в данном случае 70. Недостающее число (30) получаем как сумму 6+9+15.
Эта задачка из двенадцати чисел была одной из игр, которую стюардессы авиакомпании British Arways подсовывали детям, чтобы на время их утихомирить.
Наше небольшое упражнение также показывает абсолютную необходимость творческого подхода в эпоху информации. Использование латероскопии помогает нам выйти за пределы заданного механизма, потому что момент творчества время от времени прерывает алгоритм. В действительности большой логики в том, что мы внезапно подумали о числах кратных трем не было. Если бы это было логично, мы могли бы запрограммировать компьютер на такие операции. Нас вела уверенность, что дополнительный взгляд на проблему найдет альтернативу «грубой силе», без которой, как казалось на первый взгляд, не обойтись.
Мечта компьютерного ученого состоит в том, чтобы найти для отдельно взятой задачи методику, при которой время расчетов не будет зависеть от объема информации, которую нужно переработать и которая позволит решить систему трех уравнений с тремя неизвестными так же быстро, как и систему из двух уравнений с двумя неизвестными.
Хорошим примером может послужить теннисный турнир, где играют на выбывание. Нам нужно выяснить, сколько состоится игр, включая финал. Представим, что в турнире участвуют 80 игроков, и некоторым из них нужно будет сыграть отборочные игры, чтобы попасть в первый тур. Можно прибегнуть к громоздкому сложению: один финал плюс два полуфинала плюс четыре четверть-финала и так далее, включая отборочные матчи, если количество игроков не равно двум, возведенным в степень. Подойдя к делу творчески, получаем ответ очень быстро. (См. решение в конце главы.)
Творчество в киберпространстве – это рефлекс, который сводится к попытке изменить методы, а не инструментарий.
Творчество в информатике – изменение алгоритма, необходимое, чтобы справиться с большим объемом информации в то же расчетное время. Это рефлекс, предполагающий переосмысливание программ вместо инвестиции в переоборудование.
Космическому зонду Voyager II, запущенному в начале 1970-х годов, потребовалось двенадцать лет, чтобы долететь до Нептуна. Вот пример ускорения маятника. Даже если за эти двенадцать лет население Земли увеличилось бы на миллиард человек, для другого края солнечной системы это незначительный, бесконечно малый срок.
Космический зонд был оборудован бортовым компьютером с 32 КБ памяти! Вся его компьютерная мощность состояла в том, что сегодня может быть доступно в часовом механизме. В NASA была целая команда компьютерных специалистов, основная задача которых состояла в том, чтобы как можно меньше знать, оставаться в стороне от прогресса и не развиваться. Работая без каких бы то ни было новых систем, они в течение долгого времени модифицировали программы летательного аппарата, используя удаленную передачу данных.
Осведомленность, безусловно, является одной из опасностей, присущих технологии. Если бы кому-нибудь пришло в голову спросить сотрудников любого научно-исследовательского центра мира, можно ли отправлять к Нептуну космический корабль со столь крошечной памятью, они почти наверняка ответили бы, что это совершенно невозможно.
Рис. 5.3. Сложность и творческий подход
Давайте суммируем. Когда требуется решить специфическую задачу, полагайтесь на «магическое мышление». Не бросайтесь сразу в пучину логики. Существует два основополагающих вида суждений: «да, но…» и «да и…». Сказать «да, но…» можно тысячью разных способов – только взгляните на список убийственных фраз из таблицы 5.2 и добавьте свои собственные! Я бы, однако, советовал привыкнуть к «да и.». Это не означает «да», это попросту значит «спасибо». Спасибо за то, что помогли мне выйти за рамки привычного и открыть новую дверь.
Когда я использую упражнение с 12 числами, то через несколько минут кто-нибудь обычно говорит: «Слушай, они же кратны трем!» Кто-то другой тут же добавляет: «Да, но не 17». И они теряют возможность найти решение. Тогда как, сказав: «да и 100 тоже не кратно трем», они могли бы добиться успеха.
Оксюмороны
Существуют сотни убийственных фраз. Одна из классических гласит: «Избегайте неопределенности!» А я очень люблю неопределенность, потому что она позволяет нам вернуться к Гераклиту.
Нам привили неверное представление о неопределенности. В школе объясняли предельно ясно: двойственности быть не должно. Есть друзья и есть враги. Либо одно, либо другое. Дверь может быть либо открыта, либо закрыта. Нам нужно сделать выбор. Вся логика Аристотеля основывается на этом условии. Декарт признавал только ясные и отчетливые идеи. Пропади пропадом любая расплывчатость, а пуще того, противоречие!
Между тем их прославленный предок Сократ был менее категоричен по этому вопросу и даже оставлял дверь полуприкрытой или полуоткрытой для оксюморонов. Когда его спросили о том, что такое добродетель, он не стал клеймить безрассудную трусость или интеллектуальное невежество, а ответил, что она может быть найдена между двумя крайностями, одна из которых недостаточна, а другая – чрезмерна. Смелость находится где-то между трусостью и безрассудством, а мудрость, если вообще существует, где-то между невежеством и интеллектуальностью.
Оксюморон – стилистическая фигура. Это кристаллизация парадокса в собирательном выражении, которое соединяет два мира, теоретически несовместимых, например, «мертвый-живой» или «холодный-горячий». Как сказал Виктор Гюго: «Меланхолия есть получение удовольствия от грусти».
Оксюморон используется чаще, чем нам может показаться. Мы даже не замечаем его, когда говорим об огромных креветках, постоянных переменных, открытых секретах, абстрактных образах или гибком стекле. Менее добродушные добавят сюда административную эффективность, автомобильный спорт, военную разведку или даже Microsoft Works.