Жадный алгоритм

Жадные алгоритмы определяют минимальное количество монет, которые нужно отдать при сдаче. Показаны шаги, которые большинство людей предприняли бы для имитации жадного алгоритма для сдачи в 36 центов, используя только монеты со значениями {1, 5, 10, 20}. Монета наибольшего номинала, стоимость которой меньше, чем оставшаяся сумма сдачи, является локальным оптимумом.

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

Если глобальная оптимальность алгоритма имеет место практически всегда, его обычно предпочитают другим методам оптимизации, таким как динамическое программирование.

Условия применимости

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

Принцип жадного выбора

Говорят, что к оптимизационной задаче применим принцип жадного выбора, если последовательность локально оптимальных выборов даёт глобально оптимальное решение. В типичном случае доказательство оптимальности следует такой схеме:

  1. Доказывается, что жадный выбор на первом шаге не закрывает пути к оптимальному решению: для всякого решения есть другое, согласованное с жадным выбором и не хуже первого.
  2. Показывается, что подзадача, возникающая после жадного выбора на первом шаге, аналогична исходной.
  3. Рассуждение завершается по индукции.

Оптимальность для подзадач

Говорят, что задача обладает свойством оптимальности для подзадач для выведения результата, если оптимальное решение задачи содержит в себе оптимальные решения для всех её подзадач. Например, в задаче о выборе заявок можно заметить, что если  — оптимальный набор заявок, содержащий заявку номер 1, то  — оптимальный набор заявок для меньшего множества заявок , состоящего из тех заявок, для которых .

Примеры

Размен монет

Задача. Монетная система некоторого государства состоит из монет достоинством . Требуется выдать сумму наименьшим возможным количеством монет.

Жадный алгоритм решения этой задачи таков. Берётся наибольшее возможное количество монет достоинства : . Таким же образом получаем, сколько нужно монет меньшего номинала, и т. д.

Для данной задачи жадный алгоритм не всегда даёт оптимальное решение, а только для некоторых, называемых каноническими, монетных систем, вроде используемых в США (1, 5, 10, 25 центов). Неканонические системы таким свойством не обладают. Так, например, сумму в 24 копейки монетами в 1, 5 и 7 коп. жадный алгоритм разменивает так: 7 коп. — 3 шт., 1 коп. — 3 шт., в то время как правильное решение — 7 коп. — 2 шт., 5 коп. — 2 шт.[1]

Выбор заявок

Формулировка № 1. Даны заявок на проведение занятий в некоторой аудитории. В каждой заявке указаны начало и конец занятия ( и для -й заявки). В случае пересечения заявок можно удовлетворить лишь одну из них. Заявки с номерами и совместны, если интервалы и не пересекаются (то есть или ). Задача о выборе заявок состоит в том, чтобы набрать максимальное количество совместных друг с другом заявок.

Формулировка № 2. На конференции, чтобы отвести больше времени на неформальное общение, различные секции разнесли по разным аудиториям. Учёный с чрезвычайно широкими интересами хочет посетить несколько докладов, проходящих в разных секциях. Известно начало и конец каждого доклада. Определить, какое максимальное количество докладов можно посетить.

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

Функция на языке Python:

def activity_selector(s, f):
    n = len(s)  # количество занятий
    A = [0]  # включаем первое занятие (предполагается, что занятия отсортированы по времени окончания)
    j = 0  # индекс последней выбранной активности

    for i in range(1, n):
        if s[i] >= f[j]:  # если текущее занятие начинается после окончания последнего выбранного
            A.append(i)  # добавляем его в список выбранных
            j = i  # обновляем индекс последней выбранной активности

    return A

На вход данному алгоритму подаются массивы начала и окончания занятий. Множество A состоит из номеров выбранных заявок, а j — номер последней заявки. Жадный алгоритм ищет заявку, начинающуюся не ранее окончания j-й, затем найденную заявку включает в A, а j присваивает её номер. Таким образом, каждый раз мы выбираем то (ещё не начавшееся) занятие, до конца которого осталось меньше всего времени.

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

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

Другие жадные алгоритмы

  • Алгоритм Хаффмана (адаптивный алгоритм оптимального префиксного кодирования алфавита с минимальной избыточностью).
  • Алгоритм Крускала (поиск остовного дерева минимального веса в графе).
  • Алгоритм Прима (поиск остовного дерева минимального веса в связном графе).

Обобщением жадных алгоритмов является алгоритм Радо — Эдмондса.

Задачи, в которых жадные алгоритмы не дают оптимального решения

Для ряда задач, относящихся к классу NP, жадные алгоритмы не дают оптимального решения. К ним относятся:

Тем не менее, в ряде задач жадные алгоритмы дают неплохие приближённые решения.

См. также

Примечания

  1. X. Cai. Canonical Coin Systems for Change-Making Problems (англ.) // Proceedings of the Ninth International Conference on Hybrid Intelligent Systems. — 2009. — P. 499–504. — doi:10.1109/HIS.2009.103. — arXiv:0809.0400. Архивировано 6 мая 2021 года.

Литература

Ссылки

Read other articles:

This article is about the Chalcolithic archaeological culture in Central India. For the present-day culture of this region, see Malwa § Culture. The Malwa culture was a Chalcolithic archaeological culture which existed in the Malwa region of Central India and parts of Maharashtra in the Deccan Peninsula. It is mainly dated to c. 1600 – c. 1300 BCE,[1] but calibrated radiocarbon dates have suggested that the beginning of this culture may be as early as c. 2000-...

 

Ancient Roman, rebel, lieutenant of SertoriusLucius HirtuleiusDied75 BCAllegianceQuintus SertoriusRankLegateBattles/warsSertorian War Lucius Hirtuleius was a legate of Quintus Sertorius during the Sertorian War, in which he fought from 80 BC until his death in 75 BC.[1] He is considered Sertorius's most trusted lieutenant, his second-in-command, and was often given independent commands. During the war he defeated the Roman governors Marcus Domitius Calvinus and Lucius Manlius.[2&#...

 

Clostridium tetani dengan bentuk menyerupai raket tenis Clostridium tetani adalah bakteri yang menyebabkan penyakit tetanus.[1] Karakteristik Bakteri ini memiliki bentuk morfologi menyerupai batang, dengan bagian bulat pada ujungnya yang menyerupai penabuh genderang.[2] Bakteri ini mampu membentuk spora saat kondisi lingkungan tempat hidupnya bersifat kurang mendukung pertumbuhannya.[2] Jika diwarnai dengan pewarnaan Gram, bakteri ini bersifat Gram positif.[1] ...

Lionel Messi, vincitore del Pallone d'oro FIFA 2012 Vicente del Bosque, vincitore del FIFA World Coach of the Year 2012 per il calcio maschile Il Pallone d'oro FIFA 2012 è stato assegnato il 7 gennaio 2013 a Zurigo a Lionel Messi, che vince per la quarta volta consecutiva il trofeo di miglior calciatore del mondo[1] e a 25 anni supera i precedenti primati di tre vittorie di Johan Cruijff, Marco van Basten e Michel Platini. Al secondo posto si è classificato Cristiano Ronaldo e al te...

 

Species of crustacean Panulirus homarus Conservation status Least Concern  (IUCN 3.1)[1] Scientific classification Domain: Eukaryota Kingdom: Animalia Phylum: Arthropoda Class: Malacostraca Order: Decapoda Suborder: Pleocyemata Family: Palinuridae Genus: Panulirus Species: P. homarus Binomial name Panulirus homarus(Linnaeus, 1758) Subspecies[2] P. h. homarus (Linnaeus, 1758) P. h. megasculpta (Pesta, 1915) P. h. rubellus Berry, 1974 Synonyms[3]...

 

هنودمعلومات عامةنسبة التسمية الهند التعداد الكليالتعداد قرابة 1.21 مليار[1][2]تعداد الهند عام 2011ق. 1.32 مليار[3]تقديرات عام 2017ق. 30.8 مليون[4]مناطق الوجود المميزةبلد الأصل الهند البلد الهند  الهند نيبال 4,000,000[5] الولايات المتحدة 3,982,398[6] الإمار...

Class of SIGINT spy satellites Microwave spying Atlas-SLV3A Agena-D with Aquacade 3 Aquacade, previously designated Rhyolite, was a class of SIGINT spy satellites operated by the National Reconnaissance Office for the United States Central Intelligence Agency. The National Security Agency (NSA) was also reportedly involved.[1] The program, also known by SIGAD AFP-720 and SIGAD AFP-472, respectively,[2] is still classified. During the same period, the Canyon SIGINT satellites w...

 

73rd United States Postmaster General Patrick Donahoe73rd United States Postmaster GeneralIn officeDecember 6, 2010 – February 1, 2015PresidentBarack ObamaDeputyRonald StromanPreceded byJack PotterSucceeded byMegan Brennan Personal detailsBornOctober 27, 1955[1]Pittsburgh, Pennsylvania, U.S.EducationUniversity of Pittsburgh (BA)Massachusetts Institute of Technology (MBA) Patrick R. Donahoe is an American politician who served as the 73rd United States Postmaster General, ha...

 

Emil Theodor KocherEmil Theodor Kocher (diatas) dan Tanda Tangan (dibawah)Lahir25 Agustus 1841Bern, SwissMeninggal27 Juli 1917(1917-07-27) (umur 75)Dikenal atasPengembang bedah TiroidProfesiahli bedahInstitusiUniversitas BernPenghargaanPenghargaan Nobel dalam Fisiologi atau Kedokteran (1909) Emil Theodor Kocher ialah dokter bedah Swiss yang memenangkan Penghargaan Nobel Fisiologi atau Kedokteran 1909 untuk pekerjaannya pada kelenjar tiroid. Setelah memenuhi syarat dalam obat-obatan di U...

Cars that are larger than a subcompact car but smaller than a mid-size car The examples and perspective in this article deal primarily with the United States and Japan and do not represent a worldwide view of the subject. You may improve this article, discuss the issue on the talk page, or create a new article, as appropriate. (October 2020) (Learn how and when to remove this message) Toyota Corolla (1966–present)Volkswagen Golf (1974–present) Compact car is a vehicle size class—predomi...

 

Book of LovePosterNama lainTionghoa北京遇上西雅图之不二情书 SutradaraXue XiaoluDitulis olehXue XiaoluPemeranTang Wei Wu XiuboDistributorEDKO (Beijing) DistributionTanggal rilis 29 April 2016 (2016-04-29) Durasi129 menit[1]NegaraTiongkok Hong KongBahasaMandarinPendapatankotorUS$120 juta[2][3] Book of Love (Hanzi: 北京遇上西雅图之不二情书), juga diberi judul Finding Mr. Right 2 dalam Bahasa Inggris, adalah film romansa Tiongkok-Hong...

 

Pencak silat padaPekan Olahraga Nasional XIX Seni Putra Putri   Tunggal     Tunggal     Ganda Ganda Regu Regu Tanding Putra Putri   Kelas A     Kelas A     Kelas B Kelas B Kelas C Kelas C Kelas D Kelas D Kelas E Kelas E Kelas F Kelas F Kelas G Kelas H Kelas I Pencak silat kelas G putra pada Pekan Olahraga Nasional XIX dilaksanakan pada tanggal 20 sampai 24 september 2016 di Graha Laga Satria, ITB Jatinangor,Kabupaten Sumedang, Jawa Barat.[...

فينسنت أبو بكر Vincent Aboubakar أبو بكر مع الكاميرون عام 2022 معلومات شخصية الاسم الكامل فينسينت أبو بكر[1] الميلاد 22 يناير 1992 (العمر 32 سنة)ياوندي، الكاميرون الطول 1.76 م (5 قدم 9 1⁄2 بوصة)[2] مركز اللعب مهاجم الجنسية الكاميرون معلومات النادي النادي الحالي بشكتاش الر�...

 

Island in the middle Florida Keys, United States This article is about the island. For the census-designated place, see Duck Key, Florida. Duck KeySatellite image of Duck Key and Toms Harbor KeysDuck KeyDuck KeyShow map of FloridaDuck KeyDuck Key (Caribbean)Show map of CaribbeanGeographyLocationGulf of MexicoCoordinates24°46′13.8″N 80°54′42.4″W / 24.770500°N 80.911778°W / 24.770500; -80.911778ArchipelagoFlorida KeysAdjacent toFlorida StraitsAdministration&#...

 

中华人民共和国国家安全部 Bộ An ninh Quốc gia Nước Cộng hòa nhân dân Trung HoaBiểu trưng của Bộ Quốc AnTổng quan Cơ quanTrụ sởBắc Kinh, Trung Quốc 38°57′06″B 77°08′48″T / 38,951796°B 77,146586°T / 38.951796; -77.146586Lãnh đạo Cơ quanTrần Nhất Tân, Bộ trưởng Bộ An ninh Quốc gia Nước Cộng hòa nhân dân Trung Hoa (chữ Hán: 中华人民共和国国家安全部, Trung Hoa Nhân dân Cộng ...

Vattendroppe Området för vätska i en fasdiagram begränsas mot fast form av smältlinjen och mot gas av ångbildningskurvan upp till kritisk punkt (data för koldioxid). Vätska, även flytande form eller likvid form, är ett aggregationstillstånd för kondenserad materia,[1] som kännetecknas av att tillståndet inte har elastisk deformation vid skjuvning. Vanliga vätskor har låg viskositet så att en vätska i en bägare snabbt får samma form som bägaren. Symbolen (l), av engelska l...

 

Cet article est une ébauche concernant une compétition de football et Anguilla. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. AFA Senior Male League Généralités Sport Football Création 1997 Organisateur(s) AFA Éditions 23 (en 2022) Catégorie 1re division Périodicité Annuelle Nations Anguilla Participants 11 Statut des participants Amateur Palmarès Tenant du titre Doc's United (es) Plus titré(s...

 

Swiss mathematician (1923–2003) Not to be confused with Émile Borel. Armand BorelArmand Borel in Bonn, 1967.Born(1923-05-21)21 May 1923La Chaux-de-Fonds, SwitzerlandDied11 August 2003(2003-08-11) (aged 80)Princeton, New Jersey, United StatesAlma materETH ZürichAwardsLeroy P. Steele Prize (1991)Scientific careerFieldsMathematicsInstitutionsInstitute for Advanced StudyDoctoral advisorJean Leray Armand Borel (21 May 1923 – 11 August 2003) was a Swiss mathematician, born in La...

Pour les articles homonymes, voir Bercy. Quartier de Bercy Le quartier, vu du ciel. Administration Pays France Région Île-de-France Ville Paris Arrondissement municipal 12e Démographie Population 14 306 hab. (2016 [1]) Densité 7 518 hab./km2 Géographie Coordonnées 48° 50′ 10″ nord, 2° 23′ 00″ est Superficie 190,3 ha = 1,903 km2 Transport Gare Gare de Bercy Métro    Bus  RATP 24̴...

 

Nexhmije PagarushaNexhmije Pagarusha en 2012.BiographieNaissance 7 mai 1933Pagaruša (royaume de Yougoslavie)Décès 7 février 2020 (à 86 ans)PristinaPseudonyme Bilbili i KosovesNationalités kosovareyougoslaveActivités Actrice, artiste lyriquePériode d'activité À partir de 1948Autres informationsTessiture Contralto, sopranoGenres artistiques Opéra, musique traditionnelle, rock, pop, funkmodifier - modifier le code - modifier Wikidata Nexhmije Pagarusha est une chanteuse et actric...