Читаем The Programmers' Stone (Программистский камень) полностью

Вернор Винж (Vernor Vinge) -- профессор математики в Университете Сан Диего и один из лучших писателей-фантастов. В своей знаменитой работе "О сингулярности" ('Singularity Paper') (воспользуйтесь WWW [ www-rohan.sdsu.edu/faculty/vinge/misc/singularity.html ] и научно-фантастическими книгами "Сквозь время" (Across Realtime) и "Пламя над бездной" (A Fire Upon the Deep)) он предположил, что разум обитателей этой планеты будет возрастать как путем генетического усовершенствования человеческого мозга, так и расширения его возможностей с помощью "железа" и построения новых компьютерных архитектур, включающих человека. После этого сети и новые реалии, происходящие из дальнейшего развития, создадут мир, который мы не в состоянии даже представить с позиций нашего нынешнего состояния.

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

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

Общество разума

Марвин Мински (Marvin Minsky) в "Обществе разума" (The Society of Mind) предположил, что феномен человеческого разума возникает из взаимодействия множества неразумных обрабатывающих агентов, которые действуют в мозгу как со-процессы, каждый со своими собственными триггерами и программами действий. Агенты затем соединяются и подвергаются арбитражу посредством "сетикета" ('nettiquette'), что позволяет им определять направление деятельности организма как целого. Когда мы чувствуем себя проявляющими свободу воли в потакании нашим прихотям, мы на самом деле просто следуем решению, которое уже возникло в коллективе агентов. Эта модель определенно имеет свои привлекательные стороны и дает основу для стимулов, для удовлетворения которых мы применяем творчество и интеллект, но, как кажется, не дает полезного описания самих творчества и интеллекта. С этими обобщенными средствами познания, мозг, как кажется, должен использоваться как управляемый прибор распознавания образов общего назначения, внутренние представления которого подсоединяются к сенсорным компонентам опосредованно (косвенно), по крайней мере так, чтобы абстрактное и конкретное можно было рассматривать с одинаковых позиций.

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

Хэширование действует путем абстрагирования (извлечения) некоего ключа из данных -- возможно, беря 20 символьное имя из поля и складывая численные значения всех символов. Это число затем может использоваться для индексирования таблицы и нахождения полной записи. Реальные хэширующие алгоритмы разрабатываются так, чтобы максимизировать разброс получающихся из типичных входных данных чисел, и должны учитывать ситуации, когда хэш уже переполнен, сохраняя ссылки на несколько записей, так что извлечение включает проверку полного ключа для каждой записи. В простых ситуациях хэш часто очень эффективен, и напоминает паковку, где некоторая абстракция ситуации используется для извлечения "подходящего действия". Как представляется, при паковке плохо обрабатываются переполнения хэша. Они даже не будут замечены, пока один или несколько участников не обнаружат явные, быстро проявляющиеся (short term) потери от "подходящего действия". За этим последует "спор", в котором паковщик укажет на один путь абстрагирования ключа из ситуации и утверждать, что это "именно тот случай", в то время как другой укажет на другой алгоритм хэширования и будет утверждать, что нет, это "тот случай". Это не продуктивно и показывает изъян описанной стратегии при превышении некоторого уровня сложности проблемы, где мы пытаемся буквально впихнуть слишком много вариаций в слишком маленький хэш и не развиваем навыки выполнения при необходимости большого числа проверок полного ключа.

Перейти на страницу:

Похожие книги

1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих
1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих

Книга предоставляет полное описание приемов и методов работы с программой "1С:Управление небольшой фирмой 8.2". Показано, как автоматизировать управленческий учет всех основных операций, а также автоматизировать процессы организационного характера (маркетинг, построение кадровой политики и др.). Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, формировать разнообразные отчеты, выводить данные на печать. Материал подан в виде тематических уроков, в которых рассмотрены все основные аспекты деятельности современного предприятия. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов. Все приведенные в книге примеры и рекомендации основаны на реальных фактах и имеют практическое подтверждение.

Алексей Анатольевич Гладкий

Экономика / Программное обеспечение / Прочая компьютерная литература / Прочая справочная литература / Книги по IT / Словари и Энциклопедии