Парадоксы информации
(популярная лекция для абитуриентов)
Количество информации.
Есть известная шуточная аксиома. Если 1 программист может сделать программу за 1 месяц, то 2 программиста сделают её за сколько ? Правильно, за 2 месяца. И это не столько шутка, сколько наблюдение из реальной жизни. Почему?
Как образно представить себе понятие "количество информации"
Понятие "количество информации" – это парадоксальное понятие. Для его осмысления у большинства людей не хватает воображения.
Возьмём простейший случай . 1 бит – это информация, которую может хранить устройство с двумя состояниями, например лампочка.
При каждом удвоении количества информации число состояний возрастает совсем не так, как при предыдущем удвоении, а гораздо сильнее, катастрофичнее!
Конечно, вы все знаете историю про мудреца, который потребовал в оплату за изобретение шахмат отсчитать ему зерно с помощью шахматной доски. Он предложил правителю на первую клетку положить одно зерно, на вторую - два, на третью - четыре и так далее. Правитель легко согласился, но когда дошло до счёта, то дело кончилось катастрофой, не помню только точно, то ли правитель разорился, то ли мудрецу голову отрубил...
Давайте изменим систему наших мысленных координат, и будем считать не битами, а как мы привыкли – десятками.
Легко представить, что если мы будем удваивать количество нулей (т.е. цифр) в десятичном числе, то оно будет расти очень быстро.
Допустим для простоты, что одна цифра – это один байт (что справедливо, если мы имеем цифры, представленные в виде текста в ASCII коде). Тогда 80 байт – это число, состоящее из 80 цифр, т.е. невообразимо большое число. Таким образом, одной строкой текста (вы можете представить также длинный ряд лампочек, соответствующий этой строке) можно представить катастрофическое количество разнообразных состояний.
Если мы имеем ЭВМ, и каждому состоянию из 32 бит сопоставить ячейку памяти ЭВМ, размером 1 байт, то можно адресовать 4 Гб информации.
Что можно адресовать числом с 80-ю нулями? Давайте попробуем это наглядно себе представить.
Теория обезьян
Кто-то, не знаю кто, однажды сказал: "Если собрать очень много обезьян и посадить их за пишущие машинки, то, в конце концов, они напечатают "Войну и мир". Представим, что все обезьяны печатают разное (иначе будут дублирующие друг друга обезьяны, и их потребуется ещё больше). И то, что печатает каждая обезьяна – будет её порядковый номер. Тогда чтобы напечатать любую строку длинной 80 символов потребуется 10 в 80-той степени обезьян. Т.е. напечатать ВСЕ строки длинной 80 символов, среди которых будет и первая строка "Войны и мира".
Конечно, все обезьяны напечатают за это время все строки из "Войны и мира". Только нужно эти строки собрать в правильном порядке. Но точно также мы можем утверждать, напечатав всего 32 буквы, что это и есть "Война и мир", если эти буквы прочитать в нужном порядке.
Запишите:
Информация – это степень разнообразия
Возьмём другой случай. Пусть у нас имеется сегодняшняя газета. В ней есть масса разнообразной информации, мы можем её количество выразить в байтах. Их будет, например, миллион. Давайте возьмём вторую точно такую же газету. Сколько будет информации в двух газетах? По занимаемому ими объёму – в 2 раза больше, т.е. 2 миллиона. Но интуитивно мы понимаем, для нас информация возрастёт ровно на 1 бит. И этот бит будет говорить о том, что теперь у нас имеется 2 одинаковых газеты вместо одной.
Итак, под информацией иногда понимают совсем разные вещи.
Если на дискете записан файл, объёмом одна целая, сорок четыре сотых мегабайта, то мы обычно считаем, что на дискете записано такое количество информации. Но на самом деле, файл может состоять из одних нулей. И 1,44 Мб это всего лишь количество информации, которое МОЖЕТ быть записано на дискету.
Информация не существует без субъекта
Информация не существует без субъекта, который её воспринимает. Субъектом может быть амёба, реагирующая на свет, человек, читающий газету, автоматический станок, выполняющий программу, записанную на перфоленте. Но без субъекта информации не существует. Есть ли информация в узорах на песке в пустыне Сахара, когда там нет даже верблюдов? Точно также горы книг будут всего лишь бумажными предметами с типографской краской, если всё живое на земле вымрет в результате ядерной катастрофы.
Бесконечное могущество программиста
или
программист подобен богу
Вернёмся к газетам и программам. Система Windows – могущественная система, однако, второй её экземпляр на том же самом компьютере ничего не прибавит к нашему могуществу.
Давайте мысленно писать программу.
Сколько всего функций сможет выполнять программа?
Точно так же программа, размером 9 килобайт может иметь 1000 функций, 30 и даже 10.
Вспомним теорию обезьян. Написав 80 функций, программист может создать творение по разнообразию поведения сравнимое с творениями бога. Но чтобы функции сочетались, программист должен понимать, как это всё организовать, как это всё работает.
В своём коде разобраться намного легче, чем в чужом. Потому так и получается, что два программиста делают одну задачу дольше и хуже, чем один.
А качество и понятность языка программирования в сильнейшей степени влияют на качество результирующего проекта.
Примерчик
Пусть первые 10 функций обеспечивают редактирование текста в разных форматах. Первая функция из следующей десятки – проверяет правописание, вторая – расставляет переносы и т.д. В зависимости от устройства программы проверка правописания может действовать во всех форматах или только в одном. В первом случае мы получим редактирование в 10 режимах и проверку правописания тоже в 10 режимах – итого 20 функций. Во втором случае – редактирование в 10 режимах и проверка правописания в одном режиме – итого 11 функций…
Жизнь и теория информации
Биологи подсчитали, что простейшую живую клетку можно описать, затратив 10 мегабайт информации. С одной стороны это мало – в памяти современного компьютера можно полностью смоделировать весь такой живой организм. С другой стороны – это страшно много. Ведь мы говорим о самом наипростейшем живом организме, таком, который когда-то зародился на Земле. Вспомним обезьян, которые пытались напечатать "Войну и мир". Шанс, что атомы и молекулы случайным образом объединившись, однажды образуют живую структуру на многие порядки меньше, чем шанс одной из наших обезьян напечатать "Войну и мир". Однако сколь бы ни было это странным с точки зрения теории вероятности, Льву Толстому как-то удалось её написать.
Что я хочу сказать. Атомы объединяются в молекулы аминокислот более менее закономерным образом. Атомы – это буквы, молекулы аминокислот – это слова, а живые организмы – это фразы или главы книг. А построение фраз происходит вовсе не по случайному закону – иначе бы получилась абракадабра, а не фразы.
Перенумеруем аминокислоты. Тогда линейную цепочку из 20 аминокислот можно описать всего с помощью 20 байт, а вовсе не тем огромным количеством информации, которое кодирует положение каждого атома в каждой аминокислоте во всей нашей молекуле. Ситуация похожа на соединение двух одинаковых сегодняшних газет – степень разнообразия возрастает незначительно. Таким образом, сложность живого организма оказывается на многие порядки меньше указанных первоначально 10 мегабайт.
С одной стороны.
То, что всего лишь 80 байт описывает невообразимые ряды, обезьян помогает нам понять, почему в компактном генетическом коде умещается всё описание человека вплоть до рисунка кожного покрова. (Как мы знаем, у однояйцовых близнецов одинаковые отпечатки пальцев).
С другой стороны.
У нас есть надежда смоделировать на компьютере столь сложные системы, какими являются живые организмы.
Теория бога
"Театр теней" Клиффорда Саймака.
Лет в 14, я прочитал фантастический рассказ Клиффорда Саймака "Театр теней". Суть была такая - на оторванной от Земли юпитерианской станции жила экспедиция - человек 12. Они развлекались специфическим театром. У них был центральный компьютер, который проецировал на экран изображения кукол. Куклами управляли с помощью специальных устройств жители станции. Каждый знал только свою куклу. Эти куклы разыгрывали деревенские сценки.
И вот, однажды, из-за каких-то психических проблем на заброшенной станции в замкнутом пространстве один из ее обитателей покончил с собой. Все страшно переживали.
Подошло время очередного спектакля. Куклы по очереди появлялись на сцене и вступали в действие. И вот, к изумлению людей, они увидели на сцене все персонажи. Они бросили в шапку записки - каждый написал имя своего персонажа. Оказалось, что погибшему принадлежал самый активный герой сцены. Он жил сам по себе - без управления человеком!
Меня этот рассказ тогда глубоко поразил. Я стал представлять сам себя куклой, созданной огромным компьютером, а мир вокруг меня - декорациями, услужливо подсовываемыми мне компьютером.
Разумеется, я воспринимал это не на полном серьезе, а как одну из гипотез моей жизни. По крайней мере, очень внимательно следил за окружающими вещами. Ведь если их рисует компьютер, он запросто может забыть, в каком положении стоял стул, когда я вышел из комнаты. Тогда при моем возвращении обстановка изменится - произойдет "чудо" - нарушение принципа причинности.
Моя слежка за компьютером продолжалась год, или даже больше. А потом произошло событие, заставившее напрочь откинуть эту гипотезу.
Пришло время, наступила юность и меня захлестнул шквал эмоций. Такой, что его никак нельзя было объяснить поведением рафинированного мыслящего существа только что созданного в порядке эксперимента. Я понял, что мной управляют механизмы, которые можно заложить только за миллионы лет эволюции, что человек управляется не логикой, которую легко смоделировать, а сложными психологическими законами.
При чём же здесь бог и какая связь с религией? Очень простая – это был пример, как можно придумать себе религию и почти верить в неё и я понял, что очень многие люди придумывали себе разные религии в разное время, и некоторым удалось убедить в своей вере других
Отвлечение.
Энтропия.
Как мы выяснили информация – это степень разнообразия.
В физике есть ещё одно интересное понятие, которое называется "ЭНТРОПИЯ". Понятие возникает в термодинамике – рассматривается два сосуда, один из которых пустой, а другой заполнен газом. Когда сосуды соединяются, то газ равномерно распределяется по обоим. Некая величина, которая называется энтропией, минимальна в начальный момент и максимальна в конечный. Её называют ещё мерой хаоса, мерой неупорядоченности. Известно, что в любой закрытой системе энтропия может только возрастать. Соответственно, меру порядка называют отрицательной энтропией или негэнтропией.
Про живые существа говорят, что они непрерывно черпают негэнтропию из окружающей среды и за счёт этого обеспечивают свой внутренний порядок. Негэнтропия – понятие, часто взаимозаменяемое с информацией, как мерой разнообразия (так же, как понятия вес и масса во многих случаях взаимозаменяемы).
Определение жизни.
Что такое вообще жизнь, как ей дать определение?
Живые существа обладают совокупностью свойств.
Во-первых, они обязательно увеличивают свой порядок за счёт окружающей среды, т.е. потребляют негэнтропию (пищу, солнечный свет).
Во-вторых, они воссоздают себе подобных, т.е. поддерживают цепочку жизни.
Третье. Некоторые существа могут воспроизводить себе подобных миллиарды лет, и это тоже будет жизнью. Однако чтобы перейти на более сложную ступень, более приспособленную к окружающей среде, живые существа должны изменяться от поколения к поколению. Поэтому любой живой организм можно назвать звеном в цепочке эволюции, в цепочке естественного отбора. Жизнь – это процесс, как, например, огонь. И жизнь это составная часть другого процесса – а именно эволюции. Обсудим это.
Природные условия всё время меняются. Успешные живые организмы в одной ситуации быстро вымирают когда ситуация меняется. Может ли человечество быть осёдлым, не стремиться к освоению новых земель, других планет? Конечно, часть человечества может. Однако ацтеки и майя вырубили свои леса в Латинской Америке и практически вымерли. И любая ветвь, любая популяция живых организмов имеет этот шанс – исчезнуть, если она остановится, потеряет стремление осваивать новые территории или генетически изменяться. Поэтому стремление к развитию, к экспансии закреплено миллиардами лет эволюции, и без этих свойств живого в океане и по сей день бы плавали только одноклеточные организмы.
Мы сами – боги.
Земля – сложный и своеобразный мир, пригодный для существования живых организмов. Однако если мы правильно понимаем законы жизни, её принципы, то почему бы не попробовать построить свой мир, вернее, модель мира с помощью компьютера. Если мы заложим в этот мир все принципиально необходимые для существования жизни свойства, то мы сможем создать там жизнь. Т.е. мы будем богами для этого мира. Если мы правильно выберем его свойства, то мы получим настоящую эволюцию и настоящих живых существ, которые будут постоянно усложняться (а мы можем усложнять свойства нашего мира). Теоретически возможно даже возникновение разумных организмов. Возможны многие вещи, которые непонятны атеистам. Например, мы, боги можем создать очередной наш мир за 6 наших дней, тогда как в этом мире пройдут миллионы и миллиарды лет внутренней эволюции. Понятно, что "боги" будут существовать в другом измерении, и это измерение, совсем не похоже на четвёртое измерение, о котором говорят физики. Это будет нечто принципиально непредставимое и недостижимое для наших подопытных.
Теперь остановимся на том, для чего нам нужен такой мир.
Во-первых, это поможет понять принципы жизни. Почему все организмы смертны. Что влияет на скорость эволюции. Если мы доберемся до сложных существ, возникнет шанс прояснить, как возникает психика, эмоции – от страха и любопытства до гордости и любви. Нам доступен будет эксперимент. Так же, как человек выводит новые сорта яблок быстрее, чем это делает природа, так и в компьютерном мире мы сможем вмешиваться и выводить существ с желаемыми свойствами.
Отвлечение.
Тривиальная идея.
Хочу предупредить. Как только человеку исполняется лет восемь, и он узнаёт, что есть солнечная система и есть атомы, ему сразу приходит на ум, что солнечные системы в космосе являются атомами в другом, более крупном мире. Аналогично, создав или увидев компьютерный мир, мы легко представим, что сами являемся продуктами другого огромного компьютерного мира. Но, копнув глубже, мы выясняем, что свойства атома и свойства солнечной системы очень сильно, принципиально отличаются. Наша вселенная очень сложная. Можно было бы предположить, что существует только Земля, а всё остальное – искусные декорации. Однако я в своё время занимался астрономией и знаю, что астрономические тела реальны и если нас и смоделировали, то смоделирован и весь наш мир – все 15 миллиардов световых лет по радиусу и 15 миллиардов лет его существования. В таком мире найти то Землю и её человечество было бы очень сложно. Тем более ставить над ними эксперименты. А мир, который живёт сам по себе, в жизнь которого нельзя вмешиваться, вряд ли кто-то будет моделировать.
Проблемы искусственного разума.
Итак, первая задача, которую можно поставить при создании модели жизни – изучить принципы жизни реальной. Второй аспект заключается в том, что компьютерные создания не могут причинить нам вреда. Конечно, если мы не сделаем глупость и не дадим им средства воздействия на нас (в том числе, включим компьютер с живым миром в интернет). Компьютеры и роботы, напротив, задуманы так, чтобы взаимодействовать с человеком. Нетрудно представить робота – уборщика квартиры, посудомойку, косильщика лужаек, водителя вашего автомобиля. Все эти роботы потенциально очень опасны. Все вы слышали про принципы робототехники, которые придумали фантасты. Первый принцип – робот не должен причинять вреда человеку. Но эти принципы, конечно же, утопичны, т.к. роботу слишком сложно объяснить, что такое вред. Например, вредно ли человеку сообщить, что его брат попал в автомобильную аварию? Можно ведь вызвать инфаркт. А можно навредить тем, что человек вовремя не поможет брату. Значит, такие вещи невозможно запрограммировать и робот, в конце концов, должен сам научиться принимать решения.
Все знают, что сумасшедшие опасны. Точно также как сумасшедший, робот, имеющий свободу действия и инициативу, может оказаться опасен. Проблемы бы можно было избежать, запретив создавать разумных роботов, но опыт показывает, что всегда найдутся группы людей, которые станут нарушать этот запрет (достаточно вспомнить опыты с клонированием). Каков же выход?
С человеком прекрасно уживаются животные. Они обладают достаточной свободой и инициативой. Кошка легко может нас поцарапать, а собака – покусать. Этого не происходит, если только животное не взбесилось. Животные наделены психикой – именно поэтому они ведут себя адекватно, и мы не знаем с ними проблем. Отсюда вывод – роботам должна быть заложена психика. Легко сказать. Как нам узнать, что заложенная программа обеспечивает нужные нам свойства психики? Ответ простой – нужно позволить эволюции отобрать наиболее жизнеспособные модели. И виртуальные создания здесь очень пригодятся, т.к. вряд ли кто захочет экспериментировать с роботом – водителем вашего автомобиля. А вдруг этот робот решит покончить жизнь самоубийством…
Сложность Вселенной по плечу богу. (Вместо заключения)
Есть такой вопрос у атеистов, которые пытаются опровергнуть существование господа:
Если бог всемогущий, то сможет ли он создать такой большой камень, который сам не сможет поднять?
Этот вопрос мы можем перефразировать применительно к нашей ситуации:
Может ли бог создать такую сложную программу, в которой сам не сможет разобраться?
Как мы видели 80 байт – это бесконечное разнообразие, бесконечные ряды обезьян. Простые шахматные правила – это неисчислимое количество партий, своя маленькая вселенная. Крохотная ДНК – код, воспроизводящий разумного человека. Точно также программа из 80 функций может обладать неисчерпаемыми функциональными возможностями.
Проблема состоит в том, чтобы состыковать эти функции – проблема состоит в ограниченности человеческой памяти и мышления.
Психологи утверждают, что человек без затруднений воспринимает не более семи сущностей одновременно плюс минус две, в зависимости от способностей и от состояния.
Однако вспомним, как устроена армия.
В итоге военачальники – люди с обыкновенной памятью и мышлением командуют тысячными армиями.
Тот же принцип следует использовать при разработке программ. В идеальной программе, т.е. идеально легко и быстро понимаемой человеком при максимальной её сложности каждая процедура должна состоять примерно из семи операторов. Более сложную – всегда можно разбить на более простые.
...
(далее кусочек недописан)