Teorie složitosti: Porovnání verzí

Smazaný obsah Přidaný obsah
→‎Měření složitosti vstupu: velistí -> velikostí
ArthurBot (diskuse | příspěvky)
m Robot přidal nejlepší článek: de:Komplexitätstheorie; kosmetické úpravy
Řádek 1:
{{Informatika}}
'''Teorie složitosti''' je odvětvím [[teorie počítání]] v [[Informatika|informatice]] a [[matematika|matematice]], které se zaměřuje na klasifikaci [[Výpočetní problém|výpočetních problémů]] dle jejich vlastní složitosti. V tomto kontextu je problém chápán jako úkol, který lze zpracovat na [[počítač|počítači]]i. Problém tedy spočívá v zadání a jeho řešení. Základním příkladem je situace, kdy chceme zjistit zda-li je nějaké přirozené číslo ''n'' [[prvočíslo|prvočíslem]] nebo ne. Zadáním tohoto jsou tedy [[přirozené číslo|přirozená čísla]] a výsledkem je odpověď ANO/NE případně 0 nebo 1.
 
Zde nehraje roli samotný [[algoritmus]], ale také například množství potřebného [[čas|času]]u a finančních prostředků k realizaci řešení. Teorie používá ke studiu těchto problémů [[Matematický model|modely]], které hledají potřebné kapacity a zkoumají [[čas]] potřebný pro výpočet. Dalšími prostředky mohou být nástroje určené k sestavování samotného výpočetního systému. Zjišťují tedy možnosti [[Výpočetní cluster|paralelizace]] výpočtů na víceprocesorový systém. Dále je třeba zajistit v jakém rozsahu mohou stroje provádět výpočty, tedy co mohou provádět a co ne.
 
S tímto problémem souvisí také [[analýza algoritmů]] a [[teorie vyčíslitelnosti]]. Hlavním rozdílem mezi [[analýza algoritmů|analýzou algoritmů]] a [[teorie vyčíslitelnosti|teorií vyčíslitelnosti]] je že teorie vyčíslitelnosti se zabývá spíše výší finančních prostředků, které mimochodem potřebují samostatný algoritmus, zatímco [[analýza algoritmů]] se zabývá možnostmi všech možných použitelných algoritmů. Snaží se tedy klasifikovat problém podle omezenosti dostupných zdrojů. Podle pořadí a omezenosti zdrojů dává tedy odpověď na otázku zda úkol lze řešit algoritmicky či ne.
 
==Výpočetní problémy==
[[ImageSoubor:TSP Deutschland 3.png|thumb|200px|Ukázkovým problémem je problém obchodníka, který musí projít všechna velká [[Měmecko|německá]] města znázorněná na obrázku, přičemž každé město navštíví právě jednou. Pokud vezmem v úvahu že se v jednom městě nachází a nezáleží na směru další objednávky, pak existuje 14!/2 = 43,589,145,600 dalších možností.]]
 
===Zadání problému===
Řádek 16:
 
===[[Rozhodovací problém]] a [[Formální jazyk]]===
Rozhodovací problém je jeden ze základních typů problémů teorie složitosti, který má pouze dva možné výstupní stavy ANO či NE. Případně [[Dvojková soustava|binárně ]] 0 nebo 1. V [[Formální jazyk|jazyku logiky]], kde členy jazyka jsou případy s odpovědí ANO a ostatní členy s odpovědí NE. Je třeba pomocí algoritmu rozhodnout jakým způsobem zadaný vstup s tímto jazykem odpovídá. Jestliže algoritmus vrátí ANO pak je vstup přijmut, jinak odmítnut.
 
Příkladem rozhodovacího problému je [[graf]] a máme rozhodnout zda je to [[souvislý graf]] či ne. Formální jazyk je pak množina všech souvislých grafů a pouze je třeba rozhodnout, jak graf reprezentovat v binární podobě.
Řádek 26:
 
===Měření složitosti vstupu===
Závisí na množství času pro zpracování algoritmem. Tyto dílčí problémy, kterým může být i prostor potřebný pro řešení zpracovává samostatný [[algoritmus]] a vše souvisí také s velikostí vstupu v [[bit|bitech]]ech. Teorie složitosti se zajímá mimo jiné o způsob jakým se algoritmus vypořádá s velikostí vstupu. Například pro řešení souvislého grafu o ''n'' hranách v porovnání s grafem o ''2n'' hranách.
 
Jestliže je vstupem ''n'' pak čas potřebný pro výpočet je [[Funkce (matematika)|funkcí]] T(''n''). Například pokud n je [[Polynom|polynomiální]] pak hovoříme o polynomiálním algoritmu pro všechny vstupy ''n''. [[Cobhamova věta]] říká že problém lze vyřešit v polynomiálním čase, pokud pro něj existuje algoritmus, který zpracuje ''n'' bitový vstup v čase O(nc), kde c je konstanta závisející na problému, nikoliv jeho vstupu.
Řádek 39:
<references />
===Knihy===
* {{Citation
| last1=Arora | first1=Sanjeev | authorlink1=Sanjeev Arora
| last2=Barak | first2=Boaz
Řádek 118:
[[Kategorie:Teorie složitosti]]
[[Kategorie:Diskrétní matematika]]
 
{{Link FA|de}}
 
[[ar:نظرية التعقيد الحسابي]]