mirror of
https://github.com/2martens/uni.git
synced 2026-05-07 03:46:25 +02:00
Compare commits
4 Commits
gdb_blatt_
...
opti_blatt
| Author | SHA1 | Date | |
|---|---|---|---|
| 66ba6adf3c | |||
| 034d351d48 | |||
| 7782f3bce6 | |||
| 891d29e8db |
@ -39,7 +39,7 @@ Jim Martens (6420323)}
|
||||
\maketitle
|
||||
\section{} %1
|
||||
\subsection{} %a
|
||||
Der Algorithmus funktioniert nicht weiterhin. Dies wird anhand dieses Gegenbeispiels deutlich:
|
||||
Der Algorithmus funktioniert nicht mehr. Dies wird anhand dieses Gegenbeispiels deutlich:
|
||||
|
||||
\begin{verbatim}
|
||||
A = [0,1,4,8,10,13]
|
||||
@ -135,13 +135,24 @@ Jim Martens (6420323)}
|
||||
\subsubsection{} %ii
|
||||
\begin{verbatim}
|
||||
IST_2FAERBUNG(G) {
|
||||
// todo: make this algorithm
|
||||
kanten = E(G)
|
||||
valid = true
|
||||
foreach kante in kanten {
|
||||
knoten1 = kante.knoten1
|
||||
knoten2 = kante.knoten2
|
||||
if (knoten1.farbe == knoten2.farbe) {
|
||||
valid = false
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
return valid
|
||||
}
|
||||
\end{verbatim}
|
||||
\subsubsection{} %iii
|
||||
Es gibt 2 verschiedene 2-Färbungen, sofern man unterschiedliche Farben nicht als Unterschied ansieht. Pro 2 Farben gibt es genau 2 verschiedene Färbungen.
|
||||
\subsection{} %c
|
||||
Bei einer beliebigen Landkarten, überführt in einen Graphen, werden mindestens so viele Farben benötigt, wie der kürzeste Zyklus ist.
|
||||
Bei einer beliebigen Landkarte werden mindestens vier Farben benötigt, damit direkt benachbarte Länder stets unterschiedliche Farben haben.
|
||||
\subsubsection{} %i
|
||||
\begin{tikzpicture}
|
||||
\node (altona) {A};
|
||||
@ -174,7 +185,7 @@ Jim Martens (6420323)}
|
||||
c_{k}(W) &=& rot
|
||||
\end{alignat*}
|
||||
\subsubsection{} %iii
|
||||
|
||||
Die Aussage, dass vier Farben minimal sind, besagt nur, dass man es bei einer beliebigen Landkarte schafft diese mit maximal vier Farben zu färben. Es gibt die Obergrenze der nötigen Farben an. Die Regel besagt hingegen nicht, dass immer mindestens vier Farben benötigt werden. Bei einer Landkarte mit nur zwei aneinandergrenzenden Ländern reichen auch zwei Farben. Bei einer Karte mit nur einer zusammenhängenden Fläche ohne angrenzende Flächen reicht sogar eine Farbe.
|
||||
\subsubsection{} %iv
|
||||
\begin{tikzpicture}
|
||||
\node (sh) {SH};
|
||||
@ -196,13 +207,86 @@ Jim Martens (6420323)}
|
||||
In dieser konstruierten Karte (dargestellt als Graph), müssen mindestens vier Farben verwendet werden.
|
||||
\section{} %3
|
||||
\subsection{} %a
|
||||
\[
|
||||
G_{1}: 1, 3, 4, 5, 2, 8, 6, 7
|
||||
\]
|
||||
\[
|
||||
G_{2}: 1, 3, 5, 6, 4, 7, 2
|
||||
\]
|
||||
\subsection{} %b
|
||||
\[
|
||||
G_{1}: 4, 3, 7, 6, 8, 2, 5, 1
|
||||
\]
|
||||
\[
|
||||
G_{2}: 4, 6, 5, 3, 2, 7, 1
|
||||
\]
|
||||
\subsection{} %c
|
||||
\[
|
||||
G_{1}: 1, 3, 5, 4, 2, 7, 8, 6
|
||||
\]
|
||||
\[
|
||||
G_{2}: 1, 3, 4, 7, 5, 2, 6
|
||||
\]
|
||||
\subsection{} %d
|
||||
\subsection{} %e
|
||||
\subsection{} %f
|
||||
starke Zusammenhangskomponenten von $G_{1}:$
|
||||
\begin{alignat*}{2}
|
||||
comp1:&&\; 1, 2, 5, 6, 7, 8 \\
|
||||
comp2:&&\; 3 \\
|
||||
comp3:&&\; 4
|
||||
\end{alignat*}
|
||||
|
||||
starke Zusammenhangskomponenten von $G_{2}:$
|
||||
\begin{alignat*}{1}
|
||||
comp1: 1 \\
|
||||
comp2: 2 \\
|
||||
comp3: 3 \\
|
||||
comp4: 4 \\
|
||||
comp5: 5 \\
|
||||
comp6: 6 \\
|
||||
comp7: 7
|
||||
\end{alignat*}
|
||||
\section{} %4
|
||||
\subsection{} %a
|
||||
% Senken finden (alle Senken infiltrieren, dadurch werden alle Module eliminiert)
|
||||
% Algorithmus aus Vorlesung benutzen
|
||||
\begin{verbatim}
|
||||
function eliminiereMCP() {
|
||||
|
||||
|
||||
}
|
||||
\end{verbatim}
|
||||
\subsection{} %b
|
||||
Wenn alle Senken infiltriert werden, werden dadurch alle Module eliminiert, da alle Module direkt oder indirekt mit mindestens einer Senke verbunden sind.
|
||||
\subsection{} %c
|
||||
Es müssen alle Senken infiltriert werden, da ansonsten einzelne Module nicht eliminiert werden könnten.
|
||||
|
||||
\section*{Zusatzaufgabe} %Zusatz
|
||||
|
||||
Beweis der Terminierung für beliebige natürliche Zahlen größer $0$.\\
|
||||
Trivialer Fall: \\
|
||||
Der Algorithmus terminiert für $n=1$. \\
|
||||
Zweiter Fall: \\
|
||||
Der Algorithmus terminiert für $2^{c} = n$. Dies gilt, da damit nach $c$ Rekursionsschritten immer $n=1$ gilt. \\
|
||||
Dritter Fall: \\
|
||||
Es ist zu zeigen, dass nach endlich vielen Rekursionsschritten \textsc{Coll} mit einer 2er-Potenz aufgerufen wird.
|
||||
|
||||
Dazu lohnt es sich die verbleibenden Zahlen bis 10 anzuschauen.
|
||||
\begin{alignat*}{2}
|
||||
3 \rightarrow 10 \rightarrow 5 \rightarrow 16 \\
|
||||
5 \rightarrow 16 \\
|
||||
6 \rightarrow 3 \\
|
||||
7 \rightarrow 22 \rightarrow 11 \rightarrow 34 \rightarrow 17 \rightarrow 52 \rightarrow 26 \rightarrow 13 \rightarrow 40 \rightarrow 20 \rightarrow 10 \rightarrow 5 \rightarrow 16 \\
|
||||
9 \rightarrow 28 \rightarrow 14 \rightarrow 7 \\
|
||||
10 \rightarrow 5
|
||||
\end{alignat*}
|
||||
|
||||
Was kann aus dieser Reihe geschlossen werden? Alle Zahlen, die aus dem Produkt einer 2er-Potenz und einer dieser Zahlen entstehen, lassen sich auf eine 2er-Potenz zurückführen. Auf diese Weise könnte man für die ersten $d$ natürlichen Zahlen zeigen, dass sie sich alle auf eine 2er-Potenz zurückführen lassen.
|
||||
|
||||
Aufgrund dieser Annahme steigt die Wahrscheinlichkeit bei einem Rekursionsaufruf mit $3n+1$ auf ein solches Vielfaches einer bereits auf eine 2er-Potenz zurückgeführte Zahl zu stoßen.
|
||||
|
||||
Da es jedoch unendlich viele Primzahlen gibt, wenngleich sich deren Abstand zueinander immer weiter erhöht, findet man immer Zahlen, die noch nicht auf eine 2er-Potenz zurückgeführt sind. Aufgrund dieser Tatsache kann es keine allgemeingültige Aussage für alle natürlichen Zahlen geben. Allerdings kann dieser Algorithmus selbst als Antwort verstanden werden. Für eine beliebig große Zahl, die nicht ein gerades Vielfaches einer bereits zurückgeführten Zahl ist, muss daher nur der Algorithmus ausgeführt werden bis ein solches Vielfaches erreicht wurde.
|
||||
|
||||
Nach endlich vielen Schritten wird dies praktisch der Fall sein, wenngleich die Anzahl dieser Schritte dramatisch zunehmen wird. Es ist jedoch nicht möglich dafür einen theoretischen Beweis zu finden, der ebenjene Tatsache darlegen kann.
|
||||
\end{document}
|
||||
|
||||
@ -22,12 +22,9 @@ Abgebende: Jim 2martens, Britta 2noack, Jan-Simon 0giesel
|
||||
; gewählt. Dafür wird eine Funktion randomRezessiv benötigt, die ebendies bewerkstelligt.
|
||||
|
||||
; randomRezessiv greift auf die Dominanzliste zurück. Dafür wird eine Zugriffsfunktion
|
||||
; key->schluessel benutzt. Zusätzlich wird eine Hilfsfunktion (randomList) benutzt, um
|
||||
; key->wert benutzt. Zusätzlich wird eine Hilfsfunktion (randomList) benutzt, um
|
||||
; von der Liste der dominierten Merkmale ein zufälliges Merkmal auszuwählen.
|
||||
|
||||
; Die Hilfsfunktion reverseList dient zum Umkehren der Reihenfolge der Listen-
|
||||
; elemente und wird an mehreren Stellen verwendet.
|
||||
|
||||
; randomSelection wählt aus gegebenen dominanten und rezessiven Merkmalen zufällig eine Liste
|
||||
; an Merkmalen aus, die dann die vererbten Merkmale darstellen.
|
||||
|
||||
@ -81,23 +78,13 @@ Abgebende: Jim 2martens, Britta 2noack, Jan-Simon 0giesel
|
||||
))
|
||||
|
||||
; gibt den Wert von key in tafel zurück
|
||||
(define (key->schluessel key tafel)
|
||||
(define (key->wert key tafel)
|
||||
(cdr (assoc key tafel)))
|
||||
|
||||
; wählt ein zufälliges Element einer Liste aus
|
||||
(define (randomListe xs)
|
||||
(car (shuffle xs)))
|
||||
|
||||
; kehrt die Reihenfolge einer Liste um
|
||||
(define (reverseList list)
|
||||
(letrec ((rev (λ (xs result)
|
||||
(if (empty? xs)
|
||||
result
|
||||
(rev (cdr xs)
|
||||
(cons (car xs) result)
|
||||
)))))
|
||||
(rev list '())))
|
||||
|
||||
; wählt zu einer gegebenen Liste an dominanten Merkmalen die rezessiven Merkmale aus
|
||||
(define (randomRezessiv dominant)
|
||||
(letrec ((help (λ (xs result)
|
||||
@ -106,11 +93,11 @@ Abgebende: Jim 2martens, Britta 2noack, Jan-Simon 0giesel
|
||||
(help
|
||||
(cdr xs)
|
||||
(cons
|
||||
(randomListe (key->schluessel (car xs) dominanzliste))
|
||||
(randomListe (key->wert (car xs) dominanzliste))
|
||||
result
|
||||
))
|
||||
))))
|
||||
(reverseList (help dominant '()))))
|
||||
(reverse (help dominant '()))))
|
||||
|
||||
; wählt von den gegebenen Elementen zufällig eines aus
|
||||
(define (randomElement x y)
|
||||
@ -128,7 +115,7 @@ Abgebende: Jim 2martens, Britta 2noack, Jan-Simon 0giesel
|
||||
(select (cdr xs) (cdr ys) (cons (randomElement (car xs) (car ys))
|
||||
result))
|
||||
))))
|
||||
(reverseList (select dominant rezessiv '()))))
|
||||
(reverse (select dominant rezessiv '()))))
|
||||
|
||||
; bestimmt aus den zufälligen Merkmalen des Vaters und der Mutter die sichtbaren Elemente
|
||||
; beim Kind
|
||||
@ -136,19 +123,19 @@ Abgebende: Jim 2martens, Britta 2noack, Jan-Simon 0giesel
|
||||
(letrec ((rec (λ (xs ys result)
|
||||
(if (empty? xs)
|
||||
result
|
||||
(if (empty? (filter (λ (x) (equal? x (car ys))) (key->schluessel (car xs) dominanzliste)))
|
||||
(if (empty? (filter (λ (x) (equal? x (car ys))) (key->wert (car xs) dominanzliste)))
|
||||
(rec (cdr xs) (cdr ys) (cons (car ys) result))
|
||||
(rec (cdr xs) (cdr ys) (cons (car xs) result))
|
||||
)))))
|
||||
(reverseList (rec vaterMerkmale mutterMerkmale '()))))
|
||||
(reverse (rec vaterMerkmale mutterMerkmale '()))))
|
||||
|
||||
(require se3-bib/butterfly-module)
|
||||
|
||||
(define (zeigeSchmetterling merkmale)
|
||||
(show-butterfly (key->schluessel (cadr merkmale) translationlist)
|
||||
(key->schluessel (car merkmale) translationlist)
|
||||
(key->schluessel (caddr merkmale) translationlist)
|
||||
(key->schluessel (cadddr merkmale) translationlist)
|
||||
(show-butterfly (key->wert (cadr merkmale) translationlist)
|
||||
(key->wert (car merkmale) translationlist)
|
||||
(key->wert (caddr merkmale) translationlist)
|
||||
(key->wert (cadddr merkmale) translationlist)
|
||||
))
|
||||
; zeigt (in dieser Reihenfolge) den Vater, die Mutter und die Kinder
|
||||
(define (mendel vaterDominant mutterDominant anzahlKinder)
|
||||
@ -189,3 +176,51 @@ Abgebende: Jim 2martens, Britta 2noack, Jan-Simon 0giesel
|
||||
(mendel '(punkte rot gerade rhombisch) '(punkte rot gerade rhombisch) 2)
|
||||
|
||||
; 2)
|
||||
; überprüft, ob ein Element in einer Liste ist
|
||||
(define (in-list? element list)
|
||||
(if (pair? (member element list))
|
||||
#t
|
||||
#f))
|
||||
|
||||
; negiert ein Prädikat
|
||||
(define (not pred)
|
||||
(if pred
|
||||
#f
|
||||
#t))
|
||||
|
||||
(define erbbarliste
|
||||
'((punkte . (punkte streifen sterne))
|
||||
(streifen . (streifen sterne))
|
||||
(sterne . (sterne))
|
||||
(rot . (rot gruen blau gelb))
|
||||
(gruen . (gruen blau gelb))
|
||||
(blau . (blau gelb))
|
||||
(gelb . (gelb))
|
||||
(gerade . (gerade gekruemmt geschweift))
|
||||
(gekruemmt . (gekruemmt geschweift))
|
||||
(geschweift . (geschweift))
|
||||
(rhombisch . (rhombisch hexagonal elliptisch))
|
||||
(hexagonal . (hexagonal elliptisch))
|
||||
(elliptisch . (elliptisch))
|
||||
))
|
||||
|
||||
; überprüft, ob das Kind von den Eltern abstammen kann
|
||||
(define (testeElternschaft sichtbarVater sichtbarMutter sichtbarKind)
|
||||
(letrec ((rec (λ (xs ys zs valid)
|
||||
(if (or (not valid) (empty? xs))
|
||||
valid
|
||||
(rec (cdr xs)
|
||||
(cdr ys)
|
||||
(cdr zs)
|
||||
(or (in-list? (car zs) (key->wert (car xs) erbbarliste))
|
||||
(in-list? (car zs) (key->wert (car ys) erbbarliste))
|
||||
))
|
||||
))))
|
||||
(rec sichtbarVater sichtbarMutter sichtbarKind #t)))
|
||||
|
||||
(display "\nSind Anton und Antonia die Eltern von Toni:")
|
||||
(testeElternschaft '(sterne gruen geschweift rhombisch) '(streifen blau gekruemmt hexagonal) '(sterne rot gekruemmt rhombisch))
|
||||
(display "\nSind Anton und Antonia die Eltern von Tini:")
|
||||
(testeElternschaft '(sterne gruen geschweift rhombisch) '(streifen blau gekruemmt hexagonal) '(punkte gruen gerade rhombisch))
|
||||
(display "\nSind Anton und Antonia die Eltern von Tina:")
|
||||
(testeElternschaft '(sterne gruen geschweift rhombisch) '(streifen blau gekruemmt hexagonal) '(streifen gelb geschweift elliptisch))
|
||||
Reference in New Issue
Block a user