- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Искусственный разум - Алексей Чачко
Шрифт:
Интервал:
Закладка:
Многократно и искусно используя "да" или "нет", удается обойти любое препятствие, добраться до любой цели, где бы она ни пряталась. Помните, в поисках Спящей красавицы нам помогла вещая птица? Птица, видимо, знала толк в алгоритмировании - отвечала только "да" и "нет" и была уверена, что этого достаточно.
Алгоритм не простая цепь команд, а цепь с проверками и ветвлениями. Гибкость алгоритмов, их сила, их величие основаны на проверках и ветвлениях. После каждой проверки - два пути, которые могут навсегда разойтись или вновь пересечься спустя несколько шагов. Один путь, бывает, сразу приводит к цели, зато по другому еще шагать и шагать. Один прям как стрела, а другой вроде и не стремится вперед, наоборот, он изгибается, он возвращает нас к уже пройденным операциям, он похож на петлю. Двигаясь по такому пути, мы, кажется, совсем близки к решению, и вдруг - поворачивай оглобли, отправляйся назад, к истокам задачи. Зачем проторен попятный путь здесь, в целеустремленном алгоритме?..
Отдел кадров большого завода... Кадровики обращаются к вычислительной машине: отпечатай список всех наших мужчин в возрасте от 20 до 35 лет, которые не женаты. Машина, хранящая в своей памяти полный перечень рабочих и служащих завода, тотчас берет из него первую фамилию и придирчиво проверяет: мужчина? молодой? холост?
Если результат хотя бы одной проверки отрицательный, машина отвергает претендента; если же на все вопросы следует ответ "да", если претендент проходит по всем кондициям, машина заносит его фамилию в список.
И в любом случае возвращается к началу алгоритма: вновь извлекает очередную фамилию из списка, опять проверяет, снова то ли печатает ее, то ли пропускает - как проверка покажет. И опять упрямо поворачивает к истокам задачи.
Этот попятный путь, это повторение одних и тех же операций Ада Лавлейс назвала циклом.
Цикл работает методично, неумолимо, даже весело. Болконский Андрей. Мужчина? - Да. Молод? - Да. Холост? - Нет. Решение: Болконского Андрея в список не включать. Воробей Елизавет. Мужчина? - Нет. Молод? - Да. Холост? - Нет. Вывод: Воробья Елизавета не включать. Ленский Владимир: да, да, да - включить. Скотинин Митрофан: да, да, да - включить. Чацкий Александр: да, да, да - включить.
Цикл за циклом компьютер аккуратно проверяет весь перечень рабочих и служащих завода, добывая из него холостых. Последняя фамилия: Щукин Эрнест. Последние проверки. Мужчина? - Да. Молод? - Да. Холост? - Нет. Последнее решение: инженера Щукина в список не включать.
А дальше что? Машина не прекратит циклической работы, продолжит, как белка в колесе, свой уже ненужный бег. Как покинуть заколдованный круг, как выйти из цикла?
Опять с помощью проверки. Например, написать в конце перечня рабочих и служащих вслед за фамилией Щукин невероятную фамилию: Яяяяя. И включить в алгоритм последний вопрос: "Это фамилия, Яяяяя?" Если нет, продолжать циклическое действие, а если да, подвести черту под только что отпечатанным списком и остановиться.
Итак, цикл незаменим, когда предстоит монотонная, повторяющаяся работа. Редкий алгоритм обходится без монотонной работы, редкий алгоритм не содержит циклов. Циклами вооружены, например, все три образца нашей библиотечки алгоритмов.
Алгоритм "Спинка кофточки". Он буквально напичкан циклами: каждый ряд вязки описан циклически (выход из цикла - по числу петель); потом несколько рядов выполняются "рябушкой" (выход из цикла - число рядов достигло 4); потом предлагается чулочная вязка (выход из цикла - длина спинки равна 43 см)...
Алгоритм "Погрузка корабля". Здесь машина циклически проверяет допустимость товаров, которые протаскивают на корабль гости. Цикл, естественно, работает и тогда, когда компьютер сам загружает корабль: он извлекает слова из словаря точно так же, как машина отдела кадров добывала фамилии рабочих и служащих из перечня.
Алгоритм "Спящая красавица". Этот вообще состоит из одних циклов: два цикла в нем вложены друг в друга. Внутренний цикл делит Царство пополам: он прекращает работать, как только обнаруживает девушку в Баклушах. Тогда за дело берется внешний цикл н окончательно уточняет положение пещеры. Цикл помогает циклу - характерная для алгоритмов ситуация.
Цикл - чернорабочий алгоритма. Решение, которое он принимает за один раз, чаще всего не мудрено. Но, действуя раз за разом, систематично, кропотливо, неумолимо, цикл как бы разгоняет корабль мысли, преодолевает тяготение рутины и выводит корабль на интеллектуальную орбиту.
Понятие "цикл", конечно, не придумано алгоритми-стамп. Оно, видимо, установилось у наших предков, когда те наблюдали смену дня и ночи, чередование времен года, рост и увядание растений. Оно вошло в науку древности п средних веков. Ученые искали и находили скрытую повторяемость в движении планет (эпициклы Птолемея) и в ходе крови у животных (цикл кровообращения Гарвея).
Кажется, Р. Декарт первым осознал огромную важность циклов для человеческого ума. Если использовать точные и простые правила, строгое соблюдение которых всегда препятствует принятию ложного за истинное, если применять эти правила постепенно и многократно при зоркой интуиции каждого отдельного положения, то удастся выполнить умственную работу, которая с первого взгляда кажется необъятной. Ее удастся сделать без излишней затраты умственных сил, в короткое время, и тогда самый заурядный ум становится способным указывать воле выбор действий в житейских случайностях.
Насколько же такой методический и циклический путь лучше пути тех, кто, блуждая в пустом пространстве множества причин, ждет, не подвернется ли им под руку что-нибудь подходящее!
Так учил Р. Декарт в "Правилах для руководства ума". Алгоритмист полностью разделяет эти мысли. Составляя программы для вычислительной машины, многочисленные наши современники поняли, что циклы в них столь же необходимы, как жизненно важен цикл кровообращения для человека.
Разработка программ для вычислительных машин формирует у людей особый стиль мышления. Прежде всего алгоритмическое мышление является четким, ясным, определенным. Конечно, в требовании четкости, ясности, определенности нет ничего нового. Цену столь превосходным качествам ума знали еще первобытные охотники. Призывами к четкости, ясности, определенности идей наполнены труды древних писателей и ученых. Чем же отличаются от них сегодняшние алгоритмисты?
Мерой четкости. Степенью ясности. Полнотой определенности.
Предположим, вы хотите поручить некую умственную работу своему сотруднику. Станете ли вы разъяснять ему содержание работы до мельчайших подробностей, оговаривая каждый шаг, разжевывая каждую трудность?
Ваш ответ на этот вопрос зависит от того, кого именно вы представили себе сейчас на месте сотрудника. Ивану достаточно намека, а с Петром не стоит и связываться, легче все самому сделать, чем ему растолковать.
Американские специалисты по научной организации труда выделили четыре типа работников.
Человек первого типа - толковый, творческий, инициативный. Его достаточно навести на мысль, указать цель работы, а дорогу к ней он найдет сам.
Таких людей, честно говоря, немного. Чаще встречаются работники второго типа: сообразительные, но одной цели им мало. Требуется разъяснить сложные места в задаче, указать основные приемы, пригодные для ее решения. Однако слишком подробные разъяснения обижают этих работников, если чересчур разжевывать, они теряют интерес к задаче.
Третий тип работников умственного труда нуждается в более детальных инструкциях. Им нужно прямо сказать, что и в каком порядке делать, кроме мелочей; на мелочи не стоит упирать. И помягче объяснять, поделикатнее.
Четвертый тип людей, увы, не способен четко действовать без прямых приказов. Этим однозначно скажи, что, как и когда выполнять, изволь объяснить работу до последней стружки. Иначе беда: стал тесать Аверкий, да все исковеркал.
Часто, сравнивая возможности человека и вычислительной машины, полагают, будто все мы люди, все человеку все одинаковы, и забывают о том, насколько разнятся между собой эти самые человеки.
Если позволить себе некоторую смелость, если поставить вычислительную машину в ряд умственных работников - людей, то она окажется работником пятого типа. Инструкции для компьютера должны быть предельно четкими, ясными, определенными до мельчайшей мелочи. Любая неясность ведет к заминке, к сбою, к зацикливанию, к остановке компьютера. Машина драгоценнейшая наша не должна останавливаться, обязана непрерывно перемалывать "слова", продолжать свой ход, свой счет, свое стремительное движение к результату.
Алгоритмическое мышление зажато в тиски машинных требований, выковано в компьютерном горне, отличается твердостью, прямотой и предельной додуманностью.
Никаких "вроде бы так", никаких "и тому подобное", избави боже от "аналогично". Мысль алгоритмиста обязана прощупать все звенья без исключения, алгоритмист должен пройти все пути, одолеть все "нет" и все "да", учесть все развилки, ответить на все вопросы, найти выход из всех циклов.
