Problém s půjčováním lyží - Ski rental problem
![]() | Tento článek má několik problémů. Prosím pomozte zlepšit to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
v počítačová věda, problém s půjčováním lyží je název pojmenovaný pro třídu problémů, ve kterých je na výběr mezi pokračováním v platbě opakujících se nákladů nebo platbou jednorázových nákladů, které eliminují nebo snižují opakující se náklady.
Problém
![]() | Tato sekce potřebuje další citace pro ověření.Červenec 2020) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Mnoho online problémy mít dílčí problém zvaný problém s nájmem / nákupem. Musíme se rozhodnout, zda zůstat v aktuálním stavu a zaplatit určitou částku nákladů za jednotku času, nebo přejít do jiného státu a zaplatit nějaké pevné velké náklady bez dalších plateb.[1] Půjčovna lyží[2][3] je jedním z příkladů, kdy pronájem / koupě představuje celý problém. Jeho základní verze je:
Osoba se chystá lyžovat neznámý počet dní. Pronájem lyží stojí 1 $ na den a nákup lyží stojí 10 $. Každý den se musí člověk rozhodnout, zda si bude i nadále půjčovat lyže na jeden den nebo si koupí pár lyží. Pokud daná osoba předem ví, kolik dní bude lyžovat, může se rozhodnout pro své minimální náklady. Pokud bude lyžovat déle než 10 dní, bude levnější koupit lyže, ale pokud bude lyžovat méně než 10 dní, bude levnější si půjčit. Co by měla, když předem neví, kolik dní se bude lyžovat?[Citace je zapotřebí ]
Formálně lze problém nastavit následujícím způsobem. Existuje několik dní d (neznámé), že osoba bude lyžovat. Cílem je najít algoritmus, který minimalizuje poměr mezi tím, co člověk zaplatí pomocí algoritmu (který neví d) a co by daná osoba optimálně zaplatila, kdyby to věděla d dopředu. Problém je obecně analyzován v nejhorším případě, kdy je algoritmus pevný a poté se podíváme na výkonnost algoritmu v nejhorším případě přes všechny možné d. Zejména neexistují žádné předpoklady týkající se distribuce d (a je to snadno vidět, se znalostí distribuce d, upřednostňovala by se jiná analýza i jiná řešení).[Citace je zapotřebí ]
Algoritmus zvratu
![]() | Tato sekce potřebuje další citace pro ověření.Červenec 2020) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Algoritmus rentability dává člověku pokyn, aby si pronajal na 9 dní a koupil si lyže 10. den ráno, pokud ještě lyžuje.[4] Pokud musíte během prvních 9 dnů přestat lyžovat, stojí to stejně jako to, co byste zaplatili, kdyby jste věděli, kolik dní se lyžuje. Pokud člověk musí přestat lyžovat po 10. dni, jeho cena je 19 USD, což je o 90% více, než kolik by člověk zaplatil, kdyby věděl počet dní, kdy by mohl lyžovat předem. Toto je nejhorší případ pro algoritmus rentability.
Algoritmus zvratu je znám jako nejlepší deterministický algoritmus pro tento problém.
Rovnoměrné
![]() | Tato sekce potřebuje další citace pro ověření.Červenec 2020) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Osoba může hodit mincí. Pokud to přijde, koupí lyže osmý den; jinak si koupí lyže 10. den. Toto je příklad a randomizovaný algoritmus. Očekávané náklady jsou nejvýše o 80% vyšší, než kolik by daná osoba zaplatila, kdyby věděla, kolik dní bude lyžovat, bez ohledu na to, kolik dní lyžuje. Zejména pokud osoba lyžuje po dobu 10 dnů, její očekávaná cena je 1/2 [7 +10] + 1/2 [9 + 10] = 18 dolarů, pouze 80% přebytek místo 90%.
Randomizovaný algoritmus lze chápat jako složení různých algoritmů, z nichž každý se vyskytuje s danou pravděpodobností. Definujeme očekávaný konkurenční poměr na dané instanci i jako:
, kde je daný konkurenční poměr například i .
V důsledku toho je konkurenční poměr randomizovaného algoritmu dán nejhorší hodnotou ve všech uvedených případech. V případě půjčení lyží na převrácení mincí si povšimněte, že randomizovaný algoritmus má 2 možné větve: Pokud se mince objeví na hlavě, nakupujeme 8. den, jinak nakupujeme 10. den. a , resp. , pro . , , a , pro .
Proto je konkurenční poměr náhodného algoritmu převrácení mincí půjčovny lyží 1,8.
Nejlepší randomizovaný algoritmus proti zapomnětlivý protivník je vybrat si náhodně nějaký den podle následujícího rozdělení p, pronajmout si i-1 dny a koupit si lyže ráno, i když ještě jsou na lyžích. Karlin a kol.[2] nejprve představil tento algoritmus s distribucí