Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Топ:
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Интересное:
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Мы уделили целую главу этой небольшой книги обсуждению ЭВМ потому, что хотели выяснить, какие требования предъявляет практика к теории алгоритмов. И обнаружили то, что и ожидали. Ни одна из традиционных теорий алгоритмов не может обслуживать такую область техники и науки как ЭВМ и программирование. Правда, знание традиционных теорий алгоритмов нам в определенной степени «открывает глаза», позволяет понимать, что программирование — это прикладная область теории алгоритмов.
Но с точки зрения традиционных теории алгоритмов программы для ЭВМ и алгоритмов на входных языках программирования являются только «алгоритмами в интуитивном смысле». Традиционные теории алгоритмов заставляют при решении проблем, возникающих в связи с программированием, погружаться в туман интуиции. Программисты начинают «принимать облик» художников, фантазеров, творцов программ, чуть ли не волшебников. Такое положение самих программистов не- устраивает.
Практика ставит задачу создания науки об алгоритмах, а не аппарата для обоснования математики и решения некоторых проблем математической логики. Мы с вами интересуемся не только практикой, но и теорией и логикой, уважаем логику, но хотим иметь свою теорию. Эта теория алгоритмов должна изучать алгоритмы как таковые. Она должна дать практически осуществимые методы построения алгоритмов. Конечно, убедиться, что та или иная задача не является алгоритмически неразрешимой проблемой, очень полезно. Но в большинстве случаев это сделать не очень трудно. Хотя бы потому, что наши массовые проблемы, как правило, содержат, может быть, и чрезвычайно большое, но конечное число одиночных проблем. Правда, и такие проблемы могут быть неразрешимыми (например, проблема оценки каталога всех каталогов библиотеки, состоящей из 1000 книг, см. § 4 гл. 3). Но все же иметь дело с конечной массовой проблемой куда легче, чем с бесконечной. Итак, не будем отказываться от традиционных теорий алгоритмов, но скажем: этого мало!
Мы требуем от теории алгоритмов, чтобы она была применима к самым различным видам алгоритмов и не отсылала в туман интуиции, чтобы эта теория учила способам оценки качества алгоритмов, способам эквивалентных преобразований алгоритмов, в результате которых, имея «плохой» или «неважный» алгоритм, можно получить алгоритм «лучший» или даже «наилучший».
Поскольку мы должны применять ЭВМ в самых различных областях науки и техники, то должны с помощью теории алгоритмов обнаруживать алгоритмы, действующие в этих областях, и уметь строить программы, реализующие их.
Мы хотим к различным алгоритмам применять математику так, как ее применяют в других областях науки и техники. Для этого прежде всего нужно иметь широкое формальное определение алгоритма. Его формальный характер позволит применять к нему математику, а его широта должна обеспечить возможность почти всегда иметь дело с алгоритмами, к которым применима наука.
Традиционные теории алгоритмов слишком суживают понятие алгоритма. Одно из простейших действий, постоянно совершаемое каждым из нас, с точки зрения традиционных теорий является неконструктивным, почти что невозможным — произвольный выбор.
Простейшая массовая проблема, посильная даже для любого ребенка (приведена ниже), оказывается неразрешимой проблемой. Если же применить к ней волшебное свойство человека совершать неконструктивные действия, то после этого уже не нужен никакой алгоритм. Она уже решена.
Вот эта «дьявольская» массовая проблема: найти общий метод определения количества символов, из которых образовано непустое буквенное «кольцо» (замкнутая цепочка букв) в алфавите, состоящем из одной буквы | (палочки).
Любой ребенок эту проблему решит мгновенно. Он скажет: нужно ткнуть в это буквенное кольцо пальцем и в том месте, куда попадет палец, его разорвать. После этого кольцо станет словом, являющимся записью искомого числа (мы уже встречались с этим способом записи чисел, когда строили машину Тьюринга для реализации функции λ (х)). Может быть ребенок не догадается, что после того, как он «ткнул пальцем», ответ уже получен, и станет считать число палочек. Но это уже не решение задачи, а перевод ее ответа из единичной системы счисления в десятичную.
Но здесь мы остановимся, читатель, и скажем: мы не пытаемся принизить традиционные теории алгоритмов, а доказываем необходимость содержательной теории алгоритмов (науки о разнообразных алгоритмах иг, в частности, о встречающихся в практике). Очевидно, построение такой теории требует расширения понятия языка и решения вопроса о том, что следует считать формальным языком.
С понятия формального языка, которое нам необходимо потому, что записи алгоритмов — это предложения таких языков, равно как и допустимые исходные данные и возможные результаты — предложения других формальных языков, мы и начнем.
Содержательная теория алгоритмов подготовлена усилиями многих программистов — практиков и теоретиков, но стала она возможной благодаря основополагающим работам математиков, создавших традиционные теории алгоритмов. Многие математики уже трудятся над проблемами содержательной теории алгоритмов. В добрый час!
|
|
|
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!