рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Классы алгоритмов

Классы алгоритмов - раздел Программирование, Оглавление Введение. Ошибка! Закладка Не Определена....

Оглавление

Введение. Ошибка! Закладка не определена.

Проблема представления. 1

Классы алгоритмов. 2

Анализ алгоритмов. 3

Алгоритм размещения без повторений. 3

Алгоритм перестановки. 4

Алгоритм сочетания. 4

Контрольные вопросы.. 4

Лекция 20. Алгоритмы генерирования перестановок, множества всех подмножеств, к-элементных подмножеств множества, разбиения множеств.

Предмет теории комбинаторных алгоритмов - вычисления на дискретных математических структурах. Это новое направление исследований. Лишь в последние… Комбинаторные вычисления развиваются в следующем направлении: · интенсивно изобретаются новые алгоритмы;

Проблема представления

Приведем примеры, в которых задаются весьма специфические операции над целыми. Целые определяются как данные простейшего типа почти во всех… Проблемы кодов, сохраняющих разности, касаются случаев 2 и 3. В задачах…

Классы алгоритмов

Для того чтобы сравнивать алгоритмы между собой, необходимо четко определить понятие класса алгоритмов. Тогда можно говорить об алгоритме оптимальном в своем классе относительно некоторого свойства, характеризующего этот класс.

Рассмотрим, как можно определить класс алгоритмов на примере задачи о фальшивой монете. Рассматриваемый в этом примере класс алгоритмов порождает более обширный и более важный класс алгоритмов - так называемые деревья решений.

Задача. Имеется n монет, о которых известно, что n-1 из них являются настоящими и не более чем одна монета, фальшивая (легче или тяжелее остальных монет). Дополнительно к группе из n сомнительных монет дается еще одна монета, причем заведомо известно, что она настоящая. Имеются также весы, с помощью которых можно сравнить общий вес любых m монет с общим весом любых других m монет и тем самым установить, имеют ли две группы по m монет одинаковый вес либо одна из групп легче другой. Задача состоит в том, чтобы найти фальшивую монету, если она есть, за наименьшее число взвешиваний, или сравнений.

Решение. Пусть сомнительные монеты занумерованы числами. Монете, о которой известно, что она настоящая, поставим в соответствие номер 0. Пусть {0, 1, 2, …., n } - множество монет. Если S1, S2 — непересекающиеся непустые подмножества множества S, то через S1:S2 обозначим операцию сравнения весов множества S1, S2. При сравнении возможны три исхода, которые обозначим следующим образом:S1<S2, S1=S2, S1>S2 в зависимости от того, является ли вес S1 меньшим, равным или большим веса S2.

Рассматриваемые алгоритмы можно представить в форме дерева решений.

 

Рис. 1.1. Дерево решений для задачи о фальшивой монете с четырьмя монетами

 

Корень дерева на рисунке изображен полой окружностью и помечен отношением 1:2 . Это означает, что алгоритм начинает работу сравнением весов монет с номерами 1 и 2. Три исходящие из корня ветви ведут к поддеревьям, определяющим продолжение работы алгоритма после каждого из трех возможных исходов первого сравнения. Окружности, залитые черной краской, называются листьями дерева и означают, что работа алгоритма заканчивается. Метки соответствуют исходам: "1л" - монета 1 легкая, "1т" - монета 1 тяжелая, "н" - все монеты настоящие. Непомеченная вершина дерева означает, что при наших предположениях этот случай возникнуть не может.

Алгоритм, приведенный на рис 1.1, требует двух сравнений в одних случаях и трех - в других. Скажем, что он требует "трех сравнений в худшем случае". Обычно важно знать, сколько работы требует алгоритм в среднем, однако для этого требуется задать вероятности различных исходов. Если предположим, что все исходы 1л, 1т, 2л, 2т, 3л, 3т, 4л, 4т, - равновероятны, то тогда этот алгоритм требует в среднем 7/3 сравнений.

На одну чашку весов можем положить больше одной монеты. Например, можно начать сравнения, положив на одну чашку весов монеты 1 и 2, а на другую - монеты 3 и 4 (рис. 1.2).

Рис. 1.2. Корень другого дерева решений для задачи о четырех монетах

 

Задачу можно решить за одно сравнение - это может произойти, когда все монеты настоящие, независимо от того, как дополняется это дерево решений. В худшем случае задача все равно потребует тех же трех сравнений, поскольку единственное решение не может идентифицировать один из четырех исходов, которые возможны на ветви, помеченной символом "<", так же как и один из четырех исходов на ветви, помеченной символом ">". К тому же, независимо от того, как дополняется это дерево решений, оно потребует в среднем по крайней мере 7/3 сравнений, и в этом случае оно не лучше, чем дерево на рис 1.1.

, где 6 из 9 исходов соответствуют 2 сравнениям и 3 из 9 требуют 3 сравнения.

Используя монету 0, о которой известно, что она настоящая, можно получить приведенное на рис 1.3 дерево решений (полное двухъярусное тернарное дерево), которое и в худшем, и в среднем случае требует двух сравнений.

Рис. 1.3. Оптимальное дерево решений для задачи о четырех монетах

 

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

  • каждый узел помечен сравнением S1:S2, где S1 и S2 - непересекающиеся непустые подмножества множества S={0, 1, 2, …., n} всех монет;
  • каждый лист либо не помечен, что соответствует невозможному исходу в предположении существования не более чем одной фальшивой монеты, либо помечен одним из исходов iЛ, iT, н, означающим соответственно, что все монеты настоящие.

Четко определив подлежащий дальнейшему рассмотрению класс алгоритмов, можно исследовать свойства, которыми должно обладать каждое дерево из этого класса, и определить, как найти алгоритмы, являющиеся в некотором смысле оптимальными.

Поскольку в задаче о четырех монетах требуется различить девять возможных исходов, любое дерево решений для этой задачи должно иметь, по крайней мере, девять листьев и, следовательно, не менее двух ярусов. Поэтому дерево на рис.1.3 является оптимальным и для худшего случая, и для среднего.

Анализ алгоритмов

Из-за трудностей анализа им зачастую просто пренебрегают. Вместо этого программа выполняется для того, чтобы увидеть, что получается (например,… В анализе алгоритмов существуют две фундаментальные проблемы: · Какими свойствами обладает данный алгоритм?

Алгоритм размещения без повторений

Например, при генерации всех размещений из 5 элементов по 3 в случае, когда… ABC ACB BAC BCA CAB CBA.

Алгоритм перестановки

Общее число перестановок из N элементов равно N!. Напомним, что N!=1*2*3*…*N. Например, имеем 4 компонента, обозначенные буквами A, B, C, D. Тогда множество… ABCD, BACD, CABD, DABC, ABDC, BADC, CADB, DACB, ACBD, BCAD, CBAD, DBAC,ACDB, BCDA, CBDA, DBCA, ADBC, BDAC, CDAB, DCAB,…

Алгоритм сочетания

Формула для числа сочетаний получается из формулы для числа размещений. В самом деле, составим сначала все k -сочетания из n элементов, а потом… Из этой формулы находим, что Например, имеем 5 компонент, обозначенных латинскими буквами A, B, C, D, E. Тогда все сочетания из этих 5 компонент по…

Контрольные вопросы

  1. Дать определение комбинаторным вычислениям.
  2. Дать понятие класса алгоритма. Какие свойства заложены в классе алгоритма решения задачи о фальшивой монете.
  3. Как осуществляется анализ алгоритмов?
  4. Принцип алгоритма размещения без повторений. Математическая формула алгоритма.
  5. Принцип алгоритма перестановки. Математическая формула алгоритма.
  6. Принцип алгоритма сочетаний. Математическая формула алгоритма.

 

– Конец работы –

Используемые теги: Классы, алгоритмов0.054

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Классы алгоритмов

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Алгоритм и требования к алгоритму свойства алгоритма
Object Inspector Options goEditing True... StringGrid FexedCols Rows n... Var I J integer Begin...

Понятие алгоритма, его свойства. Описание алгоритмов с помощью блок схем на языке Turbo Pascal
Каким же образом компьютер решает сложнейшие задачи обработки информации Для решения этих задач программист должен составить подробное описание… В разных ситуациях в роли исполнителя может выступать электронное или… Составление алгоритмов и вопросы их существования являются предметом серьзных математических исследований. Свойства…

Модель управления конфликтными потоками в классе алгоритмов с упреждением при влиянии случайной среды на структуру входных потоков и загрузку системы
Это направление, в современной теории массового обслуживания, является одним из актуальных и перспективных.Согласно определению, данному УСМО в… Необходимым условием полноты описания такой системы является задание правила… В настоящей работе поставлен вопрос об исследовании систем обслуживания с переменной структурой, представляющих собой…

АЛГОРИТМЫ ВЫПОЛНЕНИЯ ПРАКТИЧЕСКИХ НАВЫКОВ, НЕОБХОДИМЫХ ДЛЯ ОКАЗАНИЯ ПЕРВОЙ ВРАЧЕБНОЙ ПОМОЩИ ПРИ НЕОТЛОЖНЫХ АЛГОРИТМЫ ВЫПОЛНЕНИЯ ПРАКТИЧЕСКИХ НАВЫКОВ, СОСТОЯНИЯХ И ЗАБОЛЕВАНИЯХ
АЛГОРИТМЫ ВЫПОЛНЕНИЯ ПРАКТИЧЕСКИХ НАВЫКОВ НЕОБХОДИМЫХ ДЛЯ ОКАЗАНИЯ ПЕРВОЙ ВРАЧЕБНОЙ ПОМОЩИ ПРИ СОСТОЯНИЯХ И ЗАБОЛЕВАНИЯХ...

Понятие и её свойства алгоритма. Способы записи алгоритмов.
Способы записи алгоритмов... Оформить записать алгоритмы можно несколькими способами... Словесный способ записи алгоритмов основан на использовании средств обычного языка но с жестко ограниченным...

Тема урока: Информация и её виды. Что изучает информатика? Техника безопасности в компьютерном классе Урок информатики в 10 классе 1 Из материалов сайта
Урок информатики в классе... Из материалов сайта Скородянской средней школы Губкинского района... Цель урока Познакомить учащихся с новым предметом Изучить понятие информации Воспитание умения слушать учителя...

Модель управления конфликтными потоками в классе алгоритмов с упреждением при влиянии случайной среды на структуру входных потоков и загрузку системы
Это направление, в современной теории массового обслуживания, является одним из актуальных и перспективных.Согласно определению, данному УСМО в… Необходимым условием полноты описания такой системы является задание правила… В настоящей работе поставлен вопрос об исследовании систем обслуживания с переменной структурой, представляющих собой…

Имеет обширный набор классов. Фрагмент структуры классов Delphi приведен на рис.5.24.1
Классы в Delphi... Delphi имеет обширный набор классов Фрагмент структуры классов Delphi... Предком всех классов Delphi является класс TObject Он обладает самыми общими методами присущими любому объекту...

Классы и страты
Уже у Аристотеля закладываются основы учения о классах и классовой борьбе. «В каждом государстве, отмечает он, есть три части: очень состоятельные,… Усмотрев причину раскола общества на классы в праве частной собственности, они… Адам Смит обосновал необходимость деления общества на классы тем, что люди получают доход разными путями. В…

Классы и классовая система
Цель работы - рассмотрение понятий «класс» и «классовая система» сквозь призму различных подходов к ним. Отсюда - ряд исследовательских задач,… Предмет исследования - специфические особенности различных классовых теорий… Г.Е. Зборовский отмечает: «… социальная структура реального общества всегда выступает как определённая…

0.038
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам