Skip to main content

2 posts tagged with "algorithms"

View All Tags

[DE] Betrachtung des Widerspruchsbeweis des speziellen Halteproblems nach Vossen und Witt

· 6 min read

Oft wird der Nachweis, dass das Halteproblem nicht entscheidbar ist, in der Fachliteratur (Schöning [📖Sch08, 119 f.], Asteroth und Baier [📖BA02, 106 f.], Sipser [📖Sip12, 216 f.]) mithilfe einer Turingmaschine und einem Widerspruchsbeweis gezeigt, in etwa:

Angenommen,

K′={w∈Σ∗∣w=⟨T⟩,T stoppt bei Eingabe w}K' = \{w \in \Sigma^* | w = \langle T \rangle, \text{$T$ stoppt bei Eingabe $w$}\}

ist entscheidbar.

Sei T′T' ist die Turingmaschine, die K′K' entscheidet.
Sei w=⟨T⟩w = \langle T \rangle die Codierung1 einer Turingmaschine, die wie folgt arbeitet:

  • TT simuliert das Verhalten von T′T' bei der Eingabe ww:
    • TT stoppt, wenn T′T' die Eingabe ww verwirft (w∉K′w \notin K')
    • TT stoppt nicht, wenn T′T' die Eingabe ww akzeptiert (w∈K′w \in K')

Damit folgt: TT stoppt bei Eingabe ww ⇔\Leftrightarrow T′T' verwirft ww ⇔\Leftrightarrow w∉K′w \notin K' ⇔\Leftrightarrow TT stoppt nicht

Widerspruch!

Footnotes​

  1. Anstatt Gödelnummer wird im Folgenden auch einfach der Begriff Codierung verwendet, wobei streng genommen τ(T)\tau(T) die Codierung einer normierten Turingmaschine ist, bevor ihr eine Gödelnummer zugewiesen wird ↩

[DE] Shellsort Laufzeitanalyse

· 14 min read

Donald Shell stellt 1959 in [📖She59] einen Sortieralgorithmus vor, der später nach ihm benannt wird: Shellsort.
Die in dem Algorithmus verwendete Sortiermethode ist auch bekannt als Sortieren mit abnehmenden Inkrementen [📖OW17b, 88], das Verfahren ist eine Variation von Insertion Sort:

[Shellsort] uses insertion sort on periodic subarrays of the input to produce a faster sorting algorithm. [📖CL22, 48]

In der vorliegenden Implementierung (siehe Listing 1) werden t=log2(n)t = log_2(n) Inkremente[^1] hth_t[^2] der Form ⌊n2i⌋\lfloor {\frac{n}{2^i}} \rfloor verwendet, um lg(n)lg(n) hh-sortierte Folgen zu erzeugen. Im letzten Schritt sortiert der Algorithmus dann in h1h_1 die Schlüssel mit Abstand=11.

Die Effizienz des Sortierverfahrens ist stark abhängig von hh: So zeigt Knuth, dass O(n32)O(n^{\frac{3}{2}}) gilt, wenn für hh gilt: hs=2s+1−1h_s = 2^{s+1} - 1 mit 0≤s<t=⌊lg(n)⌋0 \leq s < t = \lfloor{lg(n)} \rfloor (vgl. [📖Knu97c, 91][^3]. In unserem Fall können wir von O(n2)O(n^2) ausgehen.