diff --git a/übung_1/agt_übung_1.aux b/übung_1/agt_übung_1.aux index 1c80dd6..9bbccf4 100644 --- a/übung_1/agt_übung_1.aux +++ b/übung_1/agt_übung_1.aux @@ -13,9 +13,9 @@ \@writefile{toc}{\contentsline {section}{\numberline {1}Spannbäume \& Breitensuche}{1}{section.1}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces $\mitpi $-Zeiger des Breitensuchbaums und MSB blau hinterlegt.}}{1}{figure.1}\protected@file@percent } \newlabel{fig:msb}{{1}{1}{$\pi $-Zeiger des Breitensuchbaums und MSB blau hinterlegt}{figure.1}{}} -\BKM@entry{id=3,dest={73656374696F6E2E33},srcline={128},srcfile={2F686F6D652F6E657665722F446F63756D656E74732F496E4E612F32365F536F53652F4147542F6167745F65786572636973652FFC62756E675F312F6167745FFC62756E675F312E746578}}{5C3337365C3337375C303030455C303030755C3030306C5C303030655C303030725C303030775C303030655C303030675C30303065} +\BKM@entry{id=3,dest={73656374696F6E2E33},srcline={130},srcfile={2F686F6D652F6E657665722F446F63756D656E74732F496E4E612F32365F536F53652F4147542F6167745F65786572636973652FFC62756E675F312F6167745FFC62756E675F312E746578}}{5C3337365C3337375C303030455C303030755C3030306C5C303030655C303030725C303030775C303030655C303030675C30303065} \@writefile{toc}{\contentsline {section}{\numberline {2}Kreissuche}{2}{section.2}\protected@file@percent } -\BKM@entry{id=4,dest={73656374696F6E2E34},srcline={155},srcfile={2F686F6D652F6E657665722F446F63756D656E74732F496E4E612F32365F536F53652F4147542F6167745F65786572636973652FFC62756E675F312F6167745FFC62756E675F312E746578}}{5C3337365C3337375C303030475C303030725C303030615C303030705C303030685C3030306D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067} +\BKM@entry{id=4,dest={73656374696F6E2E34},srcline={156},srcfile={2F686F6D652F6E657665722F446F63756D656E74732F496E4E612F32365F536F53652F4147542F6167745F65786572636973652FFC62756E675F312F6167745FFC62756E675F312E746578}}{5C3337365C3337375C303030475C303030725C303030615C303030705C303030685C3030306D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067} \@writefile{toc}{\contentsline {section}{\numberline {3}Eulerwege}{3}{section.3}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {4}Graphmodellierung}{3}{section.4}\protected@file@percent } \gdef \@abspage@last{3} diff --git a/übung_1/agt_übung_1.fdb_latexmk b/übung_1/agt_übung_1.fdb_latexmk index 1614b82..6855a2a 100644 --- a/übung_1/agt_übung_1.fdb_latexmk +++ b/übung_1/agt_übung_1.fdb_latexmk @@ -1,5 +1,5 @@ # Fdb version 4 -["lualatex"] 1776615665.71262 "/home/never/Documents/InNa/26_SoSe/AGT/agt_exercise/übung_1/agt_übung_1.tex" "agt_übung_1.pdf" "agt_übung_1" 1776615667.38106 0 +["lualatex"] 1776616354.93745 "/home/never/Documents/InNa/26_SoSe/AGT/agt_exercise/übung_1/agt_übung_1.tex" "agt_übung_1.pdf" "agt_übung_1" 1776616356.60204 0 "/home/never/.texlive2025/texmf-var/luatex-cache/generic/fonts/otl/euler-math.luc" 1770519352.28514 417132 89f085d929a7f52a226e499fed2b660f "" "/home/never/.texlive2025/texmf-var/luatex-cache/generic/fonts/otl/lmroman10-bold.luc" 1770519351.28214 128405 86240d2e88c12243734a13e4bf6704ec "" "/home/never/.texlive2025/texmf-var/luatex-cache/generic/fonts/otl/lmroman10-regular.luc" 1770519350.86413 127322 64667bb671c8def3fa5d85c341ebd817 "" @@ -17,7 +17,7 @@ "/home/never/.texlive2025/texmf-var/luatex-cache/generic/fonts/otl/texgyrepagella-regular.luc" 1770519351.40914 310182 64e3ff98a9959bea5d737ee8b9a06ff2 "" "/home/never/.texlive2025/texmf-var/luatex-cache/generic/names/luaotfload-lookup-cache.luc" 1776608606.25376 23014 4a1f49530b644afddd7c9abad44fb6f5 "" "/home/never/.texlive2025/texmf-var/luatex-cache/generic/names/luaotfload-names.luc.gz" 1770519350.80013 381420 8c34679872cd58fe28bd24cc6f0940ba "" - "/home/never/Documents/InNa/26_SoSe/AGT/agt_exercise/übung_1/agt_übung_1.tex" 1776615665.08289 5000 f4c613d56b8636ae4c015bb457280e5b "" + "/home/never/Documents/InNa/26_SoSe/AGT/agt_exercise/übung_1/agt_übung_1.tex" 1776616350.17396 5761 9ee8208e5585b6892907aed476364b6d "" "/home/never/texmf/tex/latex/ngexrcs/ngexrcs.cls" 1776614186.59271 2041 f7d79ac75cecdfbe676fa2a93e60930b "" "/home/never/texmf/tex/latex/ngutils/ngutils.sty" 1776614808.22579 4454 147dd8f83f4d7216383b2edbd9427865 "" "/usr/local/texlive/2025/texmf-dist/fonts/opentype/public/euler-math/Euler-Math.otf" 1761682777 433104 26cb5ed06a913ce89a33ff41234f5c7a "" @@ -171,8 +171,8 @@ "/usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1770517628 5541377 824b1e5beafd2ebda40585373b35bb6b "" "/usr/local/texlive/2025/texmf-var/tex/generic/config/language.dat" 1770517624.99251 6800 99336720d16c8191172704bea65615e7 "" "/usr/local/texlive/2025/texmf-var/web2c/luahbtex/lualatex.fmt" 1770517696 5655839 756767735d369e65a483b47207bff649 "" - "agt_übung_1.aux" 1776615667.15589 2666 cf12eab06d6576c802f2e47a5afc5d48 "lualatex" - "agt_übung_1.tex" 1776615665.08289 5000 f4c613d56b8636ae4c015bb457280e5b "" + "agt_übung_1.aux" 1776616356.37697 2666 19123ed0733971294f7b908836665a2f "lualatex" + "agt_übung_1.tex" 1776616350.17396 5761 9ee8208e5585b6892907aed476364b6d "" "msb.eps" 1776424417.18606 5913 81dafb89427e3a448260b7481993e119 "" (generated) "agt_übung_1.aux" diff --git a/übung_1/agt_übung_1.log b/übung_1/agt_übung_1.log index 27ce7b3..7be0716 100644 --- a/übung_1/agt_übung_1.log +++ b/übung_1/agt_übung_1.log @@ -1,4 +1,4 @@ -This is LuaHBTeX, Version 1.22.0 (TeX Live 2025) (format=lualatex 2026.2.8) 19 APR 2026 18:21 +This is LuaHBTeX, Version 1.22.0 (TeX Live 2025) (format=lualatex 2026.2.8) 19 APR 2026 18:32 restricted system commands enabled. **/home/never/Documents/InNa/26_SoSe/AGT/agt_exercise/übung_1/agt_übung_1.tex @@ -1385,11 +1385,17 @@ Package luatex.def Info: msb-eps-converted-to.pdf used on input line 35. {/usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map}<./msb-eps -converted-to.pdf>] [2] -Overfull \hbox (2.21837pt too wide) in paragraph at lines 146--148 +Overfull \hbox (2.21837pt too wide) in paragraph at lines 148--150 \TU/TeXGyrePagella(0)/m/n/10.95 kann nicht exis-tie-ren, da die Sum-me al-ler Kn o-ten mit un-ge-ra-dem Grad [] + +Overfull \hbox (2.02118pt too wide) in paragraph at lines 158--164 +\TU/TeXGyrePagella(0)/m/n/10.95 wer-den, wenn be-stimm-te an-de-re Auf-ga-ben ab +- ge-schlos-sen sind. + [] + [3] (./agt_übung_1.aux) *********** LaTeX2e <2025-11-01> @@ -1400,10 +1406,10 @@ L3 programming layer <2026-01-19> Here is how much of LuaTeX's memory you used: 22895 strings out of 476076 100000,1373583 words of node,token memory allocated - 1762 words of node memory still in use: - 31 hlist, 20 vlist, 18 rule, 4 local_par, 38 glue, 16 kern, 4 penalty, 10 gly -ph, 103 attribute, 62 glue_spec, 52 attribute_list, 1 write nodes - avail lists: 1:1,2:745,3:291,4:4,5:341,6:55,7:4134,8:16,9:524,10:4,11:322 + 3192 words of node memory still in use: + 61 hlist, 40 vlist, 38 rule, 9 local_par, 78 glue, 31 kern, 9 penalty, 20 gly +ph, 213 attribute, 62 glue_spec, 107 attribute_list, 1 write nodes + avail lists: 1:1,2:660,3:286,4:4,5:380,6:50,7:4200,8:16,9:454,10:4,11:416 45011 multiletter control sequences out of 65536+600000 118 fonts using 28706559 bytes 122i,8n,114p,11297b,573s stack positions out of 10000i,1000n,20000p,200000b,200000s @@ -1418,7 +1424,7 @@ dist/fonts/opentype/public/tex-gyre/texgyrepagella-bold.otf> -Output written on agt_übung_1.pdf (3 pages, 45629 bytes). +Output written on agt_übung_1.pdf (3 pages, 46993 bytes). PDF statistics: 118 PDF objects out of 1000 (max. 8388607) 83 compressed objects within 1 object stream diff --git a/übung_1/agt_übung_1.pdf b/übung_1/agt_übung_1.pdf index 922f1f3..97c34fc 100644 Binary files a/übung_1/agt_übung_1.pdf and b/übung_1/agt_übung_1.pdf differ diff --git a/übung_1/agt_übung_1.synctex.gz b/übung_1/agt_übung_1.synctex.gz index 371d029..abd2e0f 100644 Binary files a/übung_1/agt_übung_1.synctex.gz and b/übung_1/agt_übung_1.synctex.gz differ diff --git a/übung_1/agt_übung_1.tex b/übung_1/agt_übung_1.tex index 1722ed6..68cf296 100644 --- a/übung_1/agt_übung_1.tex +++ b/übung_1/agt_übung_1.tex @@ -52,14 +52,14 @@ falsch. \section{Kreissuche} \begin{tasks} \item -Wähle Startknoten $s$ und füge ihn in eine neue Queue $Q$ ein. + Wähle Startknoten $s$ und füge ihn in eine neue Queue $Q$ ein. -Nimm den vordersten Knoten $u$ aus $Q$ und füge seine noch nicht entdeckten (weißen) -Nachbarn ein und färbe sie grau. Wenn einer der Nachbarn schon entdeckt wurde, -also grau ist, gibt es einen Kreis in $G$. -Markiere den Knoten $u$ als abgeschlossen ($black$) und entferne ihn aus $Q$ + Nimm den vordersten Knoten $u$ aus $Q$ und füge seine noch nicht entdeckten (weißen) + Nachbarn ein und färbe sie grau. Wenn einer der Nachbarn schon entdeckt wurde, + also grau ist, gibt es einen Kreis in $G$. + Markiere den Knoten $u$ als abgeschlossen ($black$) und entferne ihn aus $Q$ -Wiederhole den Schritt solange bis $Q$ leer ist. + Wiederhole den Schritt solange bis $Q$ leer ist. % \begin{pseudocode}[caption=Hello World Algorithmische] % EinfacherKreis(|Graph| $G$, |Vertex| $s$) @@ -82,28 +82,28 @@ Wiederhole den Schritt solange bis $Q$ leer ist. % else % return $false$ % \end{pseudocode} - -\begin{algorithm}[h] -\centering -\begin{algorithmic} -\alg{EinfacherKreis}{Graph $G$, Vertex $s$} \+ \\ - \alg{Initialize}{$G$, $s$} \com{So wie in der Breitensuche} \\ - $Q \gets$ new \alg{Queue}{} \\ - $Q.$\alg{Enqueue}{$s$} \\ - while $Q \neq \emptyset$ do \+ \\ - $u \gets Q.$\alg{Dequeue}{} \\ - $u.color \gets gray$ \\ - foreach $v \in Adj[u]$ do \+ \\ -\com{Füge alle noch nicht entdeckten Knoten ein} \\ - if $v.color = white$ then \+ \\ - $v.color \gets gray$ \\ - $Q.$\alg{Enqueue}{$v$} \- \\ -\com{Wenn ein Knoten schon entdeckt wurde, gibt es einen Kreis} \\ - else return $true$ \- \\ - $u.color \gets black$ \- \\ - return $false$ -\end{algorithmic} -\end{algorithm} + \begin{algorithm}[h] + \centering + \begin{algorithmic} + \alg{EinfacherKreis}{Graph $G$, Vertex $s$} \+ \\ + \alg{Initialize}{$G$, $s$} \com{So wie in der Breitensuche} \\ + $Q \gets$ new \alg{Queue}{} \\ + $Q.$\alg{Enqueue}{$s$} \\ + while $Q \neq \emptyset$ do \+ \\ + $u \gets Q.$\alg{Dequeue}{} \\ + $u.color \gets gray$ \\ + foreach $v \in Adj[u]$ do \+ \\ + \com{Füge alle noch nicht entdeckten Knoten ein} \\ + if $v.color = white$ then \+ \\ + $v.color \gets gray$ \\ + $Q.$\alg{Enqueue}{$v$} \- \\ + \com{Wenn ein Knoten schon entdeckt wurde, gibt es einen Kreis} \\ + else return $true$ \- \\ + $u.color \gets black$ \- \\ + return $false$ + \end{algorithmic} + \end{algorithm} + \points{4} \item Dadurch, dass wir nur Knoten @@ -116,6 +116,7 @@ Wiederhole den Schritt solange bis $Q$ leer ist. Jeder Knoten wird nur einmal in die Queue eingefügt und nur einmal herasgenommen. Somit läuft der Algorithmus in $\Oh(\abs{V})$. + \points{2} \item Solange es weiße Knoten im Graphen gibt, wählen wir einen neuen Startknoten @@ -123,6 +124,7 @@ Wiederhole den Schritt solange bis $Q$ leer ist. Tupeln $\tup{s_i, c_i}$ zurück, wobei $s_i$ der Startknoten einer Zusammenhangskomponente und $c_i \in \set{true, false}$ der Wahrheitswert, ob ein Kreis in der Komponente existiert. + \points{1} \end{tasks} \section{Eulerwege} @@ -148,10 +150,25 @@ ungerade ist, genau $0$ oder $2$ ist. Für alle anderen Fälle gilt, wenn ein Knoten ungeraden Grad hat, dann gibt es keinen Weg aus dem Knoten heraus, wenn man hineingelaufen ist. - \end{itemize} - +\points{4} \section{Graphmodellierung} +\begin{quote} +Sie betreuen ein Projekt, das sich aus vielen vordefinierten Aufgaben zusammensetzt. +Manche Aufgaben können erst erledigt werden, wenn bestimmte andere Aufgaben ab- +geschlossen sind. Für jede Aufgabe ist vorher genau bekannt, von welchen Aufgaben +sie abhängt. Ihr Projektteam kann immer nur eine Aufgabe gleichzeitig bearbeiten und +eine angefangene Aufgabe wird immer abgeschlossen bevor eine neue Aufgabe begon- +nen werden kann. +\end{quote} +Wir modellieren das Problem als gerichteten Graph. +Die Aufgaben sind Knoten. Jede Aufgabe hat Kanten zu den Aufgaben, die von ihr +abhängen. + +Eine Reihenfolge können wir Mithilfe einer Topologischen Sortierung finden. + +\points{3} + \end{document}