odvozování PRF

Konstanta Ck(x)=k

  f1 = o(x) = λx[o]
  f2 = I23(x1, x2, x3)
  f3 = s(x)
  f4 = S13(f3, f2)
  f5 = R2(f1, f4)
  f6 = S21(f5, I11, I11)

Sčítání

  f1 = s(x)
  f2 = I11(x)
  f3 = I23(x1, x2, x3)
  f4 = S13(f1, f3) = λx1x2x3[x2 + 1]
  f5 = R2(f2, f4)
      tj. f5(0, x2) = f2(x2) = x2
          f5(x1 + 1, x2) = f4(x1, f5(x1, x2), x2) = f5(x1, x2) + 1
  sum(x, y) = f5

Násobení

Jako sčítání, ale v kroku cyklu sčítáme x2 + x3.

Sign(x)

Pomocí for cyklu - konec rekurze vrací nulu, další kroky jedničku.

If

  if = S23(+,
           S23(*, S13(sign, I13), I23),
           S23(*, S13(rsign, I13), I33))

Dělení

  x/y = S32(R3(S12(o, I12), S34(if, S24(lt, S24(*, I44, s(I14), I24)), I12, I12, I22) 

min(x, y

max(x, y)

n!

s-m-n věta, věta o rekurzi

Ukažte, že existuje prostá PRF f(x, y), pro kterou platí, že φf(x, y)(z) ≃φx(z)+φy(z).

Nechť e je Godelovo číslo takové, že φ(3)e(x, y, z) ≃ φx(z) + φy(z). Potom podle s-m-n věty platí φ(3)e(x, y, z) = φ(1)f(x, y)(z), kde f(x, y) = s21(e, x, y).

Ukažte, že existuje prostá primitivně rekurzivní funkce f(x), pro níž platí, že Wf(x)={x}.

Nechť e je Godelovo číslo takové, že φ(2)e(x, y) ≃ µz[x = y]. Potom podle s-m-n věty platí φ(2)e(x, y) = φf(x)(1)(y), kde f(x) = s11(e, x).

Ukažte, že existuje prostá primitivně rekurzivní funkce f(x), pro níž platí, že Wf(x)={x.y | y ∈ ℕ}.

Obdoba předchozího příkladu, akorát použít φ(2)e(x, y) ≃ µz[x.z = y].

Ukažte, že existuje přirozené číslo n, pro které Wn={n}.

Z předchozího příkladu máme prostou PRF f(x), že Wf(x)={x}. Použijeme větu o rekurzi, tedy existuje pevný bod n, že φn ≃ φf(n), a tedy Wn={n}.

Ukažte, že existuje přirozené číslo n, pro které Wn={0, ..., n}.

Obdoba předchozích příkladů, akorát použít φ(2)e(x, y) ≃ µz[x >= y] a větu o rekurzi.

Převoditelnost

Seznam problémů

Klika
Instance: Graf G=(V, E) a přirozené číslo k.
Otázka: Obsahuje G jako podgraf úplný graf (kliku) s alespoň k vrcholy?
Nezávislá množina
Instance: Graf G=(V, E) a přirozené číslo k.
Otázka: Existuje v grafu G nezávislá množina velikosti alespoň k? Tj. existuje množina vrcholů SV, pro kterou platí, že |S|≥k a žádné dva vrcholy v S nejsou spojeny hranou?
Orientovaná Hamiltonovská kružnice (OHK)
Instance: Orientovaný graf G=(V, E).
Otázka: Existuje v grafu G hamiltonovská kružnice, tj. kružnice procházející všemi vrcholy?
Hamiltonovská cesta z s do t (HC(s, t))
Instance: Orientovaný graf G=(V, E) a vrcholy s a t.
Otázka: Existuje v grafu G hamiltonovská cesta z vrcholu s do vrcholu t? Tj. existuje v grafu G cesta z vrcholu s do t, která prochází každým vrcholem grafu G právě jednou?
Hamiltonovská cesta (HC)
Instance: Orientovaný graf G=(V, E) a vrcholy s a t.
Otázka: Existuje v grafu G hamiltonovská cesta? Tj. existuje v grafu G cesta, která prochází každým vrcholem grafu G právě jednou?
Obchodní cestující (TSP)
Instance: Množina měst C={c1,...,cn}, vzdálenost d(ci,cj) přirozené číslo pro každá dvě města ci,cj, přirozené číslo B.
Otázka: Existuje cyklus, který navštíví každé město právě jednou a jehož délka nepřesahuje B? Tj. existuje permutace π: {1,...,n} -> {1,...,n} taková, že
( ∑i=1n-1 d(cπ(i), cπ(i+1)) ) ≤ B?
Batoh
Instance: Množina předmětů A, pro každý předmět a přirozené číslo s(a) udávající jeho velikost a přirozené číslo v(a) udávající jeho cenu, přirozená čísla B a K.
Otázka: Existuje množina předmětů A', pro kterou platí, že ∑aA' s(a)≤B a ∑aA' v(a)≥K?
Rozvrhování
Instance: Počet procesorů m, množina úloh U, pro každou úlohu u přirozené číslo d(u) a přirozené číslo D.
Otázka: Existuje rozdělení množiny předmětů U na m po dvou disjunktních podmnožin U1, ..., Um tak, aby pro každou z nich, tedy pro každé 1≤im platilo, že ∑uUi d(u)≤D?
Celočíselné programování
Instance: Matice nad celými čísly A typu m×n a, vektor celých čísel b délky m.
Otázka: Existuje vektor celých čísel x délky n, pro který platí Axb?
Binární celočíselné programování
Instance: Matice nad celými čísly A typu m×n a, vektor celých čísel b délky m.
Otázka: Existuje vektor x∈{0, 1}n, pro který platí Axb?
Minimální tranzitivně ekvivalentní podgraf
Instance: Orientovaný graf G=(V, E) a přirozené číslo k.
Otázka: Existuje podgraf G' grafu G, který by obsahoval nejvýš k hran a pro který by platilo, že tranzitivní uzávěr G' je shodný s tranzitivním uzávěrem G?

Převody

Klika -> Nezávislá množina: stačí udělat doplněk hran

Vrcholové pokrytí -> Nezávislá množina:
	k := |V| - k
	G := G

HK -> OHK: všechny hrany HK zorientujeme oběma směry

HK -> HC(s,t): vezmeme lib. vrchol s a přidáme nový vrchol t s hranami vedoucími do všech sousedů s.

HC(s,t) -> HC: přidáme 2 nové vrcholy a připojíme první na s a druhý na t.

HC -> TSP: Z neorientovaného grafu vytvoříme neorientovaný úplný ohodnocený graf:
   * každé hraně z původního grafu přiřadíme délku 1
   * přidáme nové hrany tak, aby graf byl úplný a všem těmto hranám přiřadíme délku 2
   * maximální délku cesty obchodního cestujícího nastavíme na počet vrcholů grafu, což způsobí, že žádná hrana s délkou 2 nemůže být částí řešení
HC -> Minimální tranzitivně ekvivalentní podgraf: Z neorientovaného grafu vytvoříme orientovaný graf:
   * každou hranu zorientujeme v obou směrech
   * k := |V|, protože:
     * pokud původní graf obsahuje HC, tak musí být silně souvislý
     * silně souvislý graf má HC právě když má tranzitivně ekvivalentní podgraf o |V| hranách
LOUP -> BATOH:
	s(a) := s(a)
	v(a) := s(a)
	B := 1/2 Sum(s(a))
	K := 1/2 Sum(s(a))

LOUP -> ROZVRHOVÁNÍ:
	m := 2	
	U := A
	d(u) := s(a)
	D := 1/2 Sum(s(a))
LOUP -> Binární celočíselné programování:
	m := 2, n := |A|
	            / s(a1)  ...  s(an) \
	matice A := |                   |
	            \ -s(a1) ... -s(an) /
	vektor B := ( 1/2 Sum(s(a)), -1/2 Sum(s(a)) )