BuK/IIm11/BuK-Übung06

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

[http://www.inf.hs-zigr.de/~wagenkn/TI/Berechenbarkeitstheorie/VL/vl06.pdf Vorlesungsfolien]

Aufgaben werden am 08.05. um 23:00 übertragen


== Reduzierbarkeit ==

<language>Scheme</language>
=== Aufgabe 1 (Max Wielsch, Raik Bienik) ===
(Aufgabe siehe: VL Slide 14)

Konstruieren sie eine Prozedur, welche prüft ob $w$ die Form $uu$ besitzt!

<code id="4fa96b851b96b">
(define sublist
  (λ (list start)
    (if (= start 0)
      list
      (sublist (cdr list) (- start 1)))))

(define size
  (λ (list)
    (if (null? list)
      0
      (+ (size (cdr list)) 1))))

;checks if wordAsList has letterCount letter(s) at position start.
(define checkLetters
  (λ (wordAsList start letter letterCount)
    (letrec ((worker (λ (list letterCount)
        (if (= letterCount 0)
          '#t
          (if (equal? (car list) letter)
            (worker (cdr list) (- letterCount 1))
            '#f)))))
      (worker (sublist wordAsList start) letterCount))))

(define acceptor
  (λ (w)
    (let* ((wAsList (string->list w))
	  (sizeofW (size wAsList)))
      (if (not (= (modulo sizeofW 6) 0))
        '#f
        (let ((letterCount (quotient sizeofW 6)))
          (if
            (and
              (checkLetters wAsList (* 0 letterCount) #\a letterCount)
              (checkLetters wAsList (* 1 letterCount) #\b letterCount)
              (checkLetters wAsList (* 2 letterCount) #\c letterCount)
              (checkLetters wAsList (* 3 letterCount) #\a letterCount)
              (checkLetters wAsList (* 4 letterCount) #\b letterCount)
              (checkLetters wAsList (* 5 letterCount) #\c letterCount))
            '#t
            '#f))))))
</code>
<run id="4fa96b851b9d3">
(acceptor "aaabbbcccaaabbbccc")
</run>

=== Aufgabe 2 (Stefan Lüttke, Felix Nitsche) ===
(Aufgabe siehe: VL Slide 15/16)

Beweisen Sie diesen Satz, indem Sie mittels Aussagenlogik die Äquivalenz dieser Aussage zum vorhergehenden Satz zeigen. Es handelt sich um die Kontraposition:

$A \wedge B \rightarrow C \Leftrightarrow \neg C \wedge B \rightarrow \neg A$

Verwenden Sie im Beweis die folgenden Aussagen:

A: $P'$ ist entscheidbar. B: $P$ ist reduzierbar auf $P'$. C: $P$ ist
entscheidbar.

{| border="1" cellpadding="5" cellspacing="0"
!$A$
!$B$
!$C$
!$E = A \wedge B$
!$F = E \rightarrow C$
!$G = \neg C \wedge B$
!$H = G \rightarrow \neg A$
!$I = F \Leftrightarrow H$

|-
|| w || w || w || w || w || f || w || w
|-
|| f || w || w || f || w || w || w || w
|-
|| w || f || w || f || f || w || f || w
|-
|| f || f || w || w || w || f || w || w
|-
|| w || w || w || w || f || f || f || w
|-
|| f || w || w || f || w || w || w || w
|-
|| w || f || w || f || w || w || w || w
|-
|| f || f || w || w || w || f || w || w
|-

|}

== Unentscheidbarkeitsbeweis ==
=== Aufgabe 1 (Ingo Körner, Christoph Ochmann) ===
(Aufgabe siehe: VL Slide 13)

Zeigen Sie die Unentscheidbarkeit von $L_{\Sigma^{*}}:=\{\left\langle M \right\rangle | L(M) = \Sigma^{*} \}$ durch Reduktion des Halteproblems.

Lösungsansatz: Berechne aus der Eingabe <M> die Kodierung der Maschine M'. M' ist die Maschine, die ihre Eingabe löscht, dann <M> auf das Band schreibt und dann auf <M> weiterrechnet. <M> ist $\in$ $L_{\Sigma^{*}}$ genau dann, wenn M' termiert.