6 / 6 / 5
Регистрация: 15.05.2014
Сообщений: 104
1

Что такое приближенный алгоритм и в чем отличие от эвристического или жадного?

11.08.2015, 19:21. Показов 9774. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Правильно ли я понимаю, что приближенный алгоритм - это алгоритм, который всегда дает почти точное решение и его точность доказана, в то время как эвристический - это тоже приближенный, но его точность не доказана и в некоторых случаях могут получаться совершенно не приближенные результаты или даже не оптимальные? В то время как жадный выбирает локально оптимальные решения, и так же может давать точный, приближенный или даже самый не оптимальный результат?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.08.2015, 19:21
Ответы с готовыми решениями:

Нюансы использования оператора запятая или что такое UB и с чем его едят
Почему студия и ideone выдают разные значения для a и b? в студии выходит a = 10 , b = 10 в...

DrawingVisual, что это такое и с чем его едят, или как перерисовать
Суть: есть Canvas (с координатами x) на котором рисуются DrawingVisual'ы, далее делается замена...

Что такое TableAdapterManager и TableAdapter и в чём их отличие?
Не могу понять что такое TableAdapterManager и TableAdapter в чём их отличие?

Что такое Container и OWNER и в чём отличие от PARENT
Поискал инфу в интернете, но внятное объяснение найти не смог, на счёт разницы между Parent и...

6
2769 / 1817 / 200
Регистрация: 05.06.2011
Сообщений: 5,273
11.08.2015, 19:40 2
Про жадный — приблизительно так, если я сам понимаю. Насчёт точного, приближённого и т.п. — не совсем. Насколько я знаю, есть задачи, решаемые жадным алгоритмом и не решаемые. Встречал термин только в отношении комбинаторики, там нет приближённых результатов. Либо даёт ответ, либо не даёт.
Эвристический, то, что встречал — неполный, что ли. Вот, например, задача о рюкзаке. Решается полным перебором, но можно ускорить некоторыми приёмами. Иногда условия выполняются и приём работает (ускоряет, в данном случае, перебор). Иногда условия не выполняются и приём неприменим.
Приближённый алгоритм — как термин не встречал. Есть алгоритмы, находящие приближение к результату, но приближёнными их не называют.
1
Эксперт функциональных языков программированияЭксперт по математике/физике
4300 / 2091 / 431
Регистрация: 19.07.2009
Сообщений: 3,163
Записей в блоге: 24
12.08.2015, 18:04 3
Лучший ответ Сообщение было отмечено kquick как решение

Решение

iifat, я понял, о чём спрашивается в теме!

Под приближенными алгоритмами (решениями) понимаются такие алгоритмы для решения комбинаторных задач, которые возвращают вариант, отличающийся от оптимального не более, чем на определённую погрешность. Например, задачу коммивояжера можно заменить такой: «найти какой-либо гамильтонов цикл, длина которого отличается от длины оптимального гамильтонового цикла не более, чем на m%». Если для данной задачи найдётся алгоритм, который может решить задачу с указанной точностью за меншее время или с лучшей сложностью решения, чем любой алгоритм, находящий точное решение (т.е. m=0), то такой алгоритм будет приближенным.

Кстати, ты точно не встречал подобных алгоритмов?
1
2769 / 1817 / 200
Регистрация: 05.06.2011
Сообщений: 5,273
12.08.2015, 19:28 4
Цитата Сообщение от Mysterious Light Посмотреть сообщение
подобных алгоритмов
Подобных — наверняка встречал. Один даже писал. Разбивал .zip-файл на дискеты, многотомных архивов тогда ещё не было. Вот названия «приближённые алгоритмы» в этом смысле не помню. Хотя и не возражаю — название вполне подходит
1
6 / 6 / 5
Регистрация: 15.05.2014
Сообщений: 104
14.08.2015, 12:44  [ТС] 5
Цитата Сообщение от Mysterious Light Посмотреть сообщение
приближенными алгоритмами
Что тогда насчет эвристических и жадных? Чем они отличаются?

Эврестический:
- нет строгого обоснования (не доказан)
- приемлемые результаты в большинстве случаев (но может вобще самый плохой результат)

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

Правильно ?

Если быть более конкретным. Вот задача коммивояжера. Взято из википедии:
"Все эффективные (сокращающие полный перебор) методы решения задачи коммивояжёра — методы эвристические. В большинстве эвристических методов находится не самый эффективный маршрут, а приближённое решение."

Тогда получается, что всякий жадный алгоритм - это частный случай эвристического?

Жадный:
- нет строго обоснования (не доказан, а может быть и доказан в отличии от эвристического)
- приемлемые результаты в большинстве случаев (самый неоптимальный быть не может, поскольку принимаются локально оптимальные решения)
Вот опять же. Взять тот же алгоритм муравья. Он же жадный? Но в связи с элементом случайности может выдать самый плохой результат (маловероятно, но все же). Получается, что второе утверждение про жадный не верно и он просто эвристический?
0
2769 / 1817 / 200
Регистрация: 05.06.2011
Сообщений: 5,273
14.08.2015, 13:26 6
Не, вот тут куда-то не туда тебя понесло.
Жадный алгоритм — вполне себе доказан. Собственно, «жадный алгоритм» — это не конкретный алгортм, жадность это свойство алгоритма (принимать оптимальные локальные решения на каждом этапе). Некоторые задачи решаются жадным алгоритмом, некоторые нет. И то, и другое надо доказывать. Задача коммивояжера относится к нерешаемым этим алгоритмом.
Цитата Сообщение от kquick Посмотреть сообщение
- нет строгого обоснования (не доказан)
Как-то жестоко Вот, посмотри Википедию, например. Совсем уж недоказанный алгоритм и применять-то страшно. Нет полного доказательства. Ну вот, к примеру, задача о рюкзаке. Решаем полным перебором; а теперь добавим в начало проверку — соберём всё и посмотрим, не поместится ли в рюкзак. По-моему, этот приём заслуживает названия эвристического. Понятно, что если сработает, то здорово ускорит работу алгоритма; но вот оценить вероятность — безнадёга. Всё, как понимаю, предельно доказано, но вот оценить долю решаемых задач невозможно.
1
Модератор
Эксперт функциональных языков программирования
3079 / 2228 / 464
Регистрация: 26.03.2015
Сообщений: 8,662
14.08.2015, 20:42 7
Лучший ответ Сообщение было отмечено kquick как решение

Решение

Между жадным, эвристическим и приближенным алгоритмом нет взаимно однозначного соответствия.

Жадный алгоритм - это когда мы выбираем оптимальное решение на каждом шаге. В зависимости от задачи жадный алгоритм может находить лучшее решение или не находить.

Пример 1.
Есть N предметов разного веса и разной стоимости. Нужно выбрать n предметов так, чтобы суммарная стоимость была как можно больше.
Жадный алгоритм (на каждом шаге выбираем самый дорогой предмет) даёт оптимальное решение.

Пример 2.
Есть N предметов разного веса и разной стоимость. Нужно выбрать предметы общим весом не больше G так, чтобы суммарная стоимость была как можно больше.
Жадный алгоритм (на каждом шаге выбираем предмет с самой большой удельной - цена/вес - стоимостью) не даёт оптимальное решение. Более того, получаемое решение может во сколько угодно раз отличаться от оптимального. (Суммарный вес X, предметы: {вес 1, цена 1}, {вес X, цена X/2}. Жадным алгоритмом получаем суммарную цену 1.)

Приближенный алгоритм гарантирует, что найденное решение будет отличаться от оптимального не более, чем на сколько-то процентов. Приближенный алгоритм может быть жадным, а может не быть.

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

Пример 3.
Найти кратчайший путь между двумя точками (на графе).
Жадный алгоритм (на каждом шаге выбираем узел, который ближе всего к цели).
Жадный эвристический алгоритм (на каждом шаге выбираем узел так, чтобы минимизировать эвристическую функцию).
Пусть, например, граф состоит из 4х точек S, A, B, F и 4х рёбер: [SA] = 1, [SB] = 100, [AF] = 5, [BF] = 1. Предложенный жадный алгоритм на первом шаге выбирет точку B, так как она ближе к цели. Итоговый путь 101.
Если в качестве эвристики взять пройденный путь + расстояние по прямой до цели, то жадный эвристический алгоритм выберет на первом шаге точку A, так как эвристика (1+5 < 100 + 1).
Можно использовать поиск в ширину и найти точное решение. При этом можно использовать описанную выше эвристическую функцию для задания приоритета на каждом шаге. У нас будет эвристический алгоритм, находящий точное решение, но работающий быстрее, чем просто поиск в ширину.
1
14.08.2015, 20:42
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.08.2015, 20:42
Помогаю со студенческими работами здесь

В чем отличие и что лучше изучать???
Вот есть язык программирования C, есть C++, есть C#, есть 1С. Так вот какой из них лучше учить

Core i5-3470 или Xeon L5410: в чем отличие
правильно ли я понимаю, что Core i5-3470 снабжен дополнительно видеоядром Intel HD Graphics 2500?...

Как такое проделать с мемо? или что подходит под такое?
Привет всем! Как сделать такое? и на чем лучше мемо,листбокс.... или просто как вставить...

Приближенный алгоритм. Грузовики и камни
Подскажите алгоритм, ибо мой не проходит по времени(ограничения 1 секунда). Я делал так:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
Информационное моделирование
hw_wired 28.01.2025
Введение в информационное моделирование В современном мире информационное моделирование стало неотъемлемой частью научной, образовательной и профессиональной деятельности. Это мощный инструмент. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru