computational problem (tsz. computational problems)
A computational problem (számítási probléma) egy formális kérdés, amely bemenet(ek) alapján valamilyen kimenetet (választ) vár. Ez az informatikai és algoritmikus gondolkodás legalapvetőbb fogalma, amelyre az algoritmusok, programozás és bonyolultságelmélet épül.
Egy számítási probléma egy lehetséges bemenetekből álló halmazhoz (pl. bináris stringek) egy kimeneti értéket rendel – lehet döntési, konstrukciós vagy optimalizálási jellegű.
Formálisan:
Egy számítási probléma egy függvény:
ahol egy ábécé (pl. bináris: ), és minden lehetséges string.
Probléma | Bemenet | Kimenet |
---|---|---|
Prímszám-ellenőrzés | Egy szám | Igen/Nem |
Összeadás | Két egész szám | |
Sudoku megfejtés | Részben kitöltött tábla | Kitöltött, szabályos tábla |
Legnagyobb közös osztó | Két szám | |
Travelling Salesman | Városok és távolságok | Legrövidebb körút hossza |
Rendezés | Lista | Rendezett lista |
Típus | Leírás |
---|---|
Döntési probléma | A válasz „igen” vagy „nem” (pl. „Van Hamilton-kör?”) |
Optimalizálási probléma | Legjobb értéket keressük (pl. „Legkisebb út”) |
Konstrukciós probléma | Konkrét megoldást keresünk (pl. „Mutass egy útvonalat”) |
Generatív probléma | Egy adott struktúrát generálunk (pl. nyelvi szintaxis) |
Egy probléma megoldása egy algoritmus, amely:
Tulajdonság | Jelentés |
---|---|
Időkomplexitás | Milyen gyorsan számolható ki |
Térkomplexitás | Milyen memória kell a számításhoz |
Dönthetőség | Létezik-e egy algoritmus a megoldásra |
Determinálhatóság | A válasz egyértelmű és kiszámítható-e |
Döntési változat | Optimalizálási változat |
---|---|
„Van-e 3-színű színezés a gráfhoz?” | „Mi a minimális színszám a gráfhoz?” |
„Létezik-e hátizsák-kiválasztás 100 értékkel?” | „Mi a maximális érték, amit be tudok pakolni?” |
def sort_problem(lst):
return sorted(lst)
print(sort_problem())
# →
Ez egy konstrukciós probléma: a bemenet egy lista, a kimenet a megfelelően rendezett verzió.
Fogalom | Leírás |
---|---|
Számítási probléma | Olyan feladat, ami bemenetről kimenetre képezhető |
Típusok | Döntési, optimalizálási, konstrukciós |
Megoldás | Algoritmus, amely minden bemenetre működik |
Kapcsolódó területek | Algoritmuselmélet, bonyolultságelmélet, automaták |
Kritikus kérdés | Megoldható-e gyorsan / egyáltalán? |