diff --git a/übung_1/agt_übung_1.aux b/übung_1/agt_übung_1.aux index 50c2411..386d009 100644 --- a/übung_1/agt_übung_1.aux +++ b/übung_1/agt_übung_1.aux @@ -7,8 +7,8 @@ \providecommand\HyField@AuxAddToFields[1]{} \providecommand\HyField@AuxAddToCoFields[2]{} \providecommand\BKM@entry[2]{} -\BKM@entry{id=1,dest={73656374696F6E2E31},srcline={10},srcfile={2F686F6D652F6E657665722F446F63756D656E74732F496E4E612F32365F536F53652F4147542F6167745F65786572636973652FFC62756E675F312F6167745FFC62756E675F312E746578}}{5C3337365C3337375C303030535C303030705C303030615C3030306E5C3030306E5C303030625C3030305C3334345C303030755C3030306D5C303030655C3030305C3034305C3030305C3034365C3030305C3034305C303030425C303030725C303030655C303030695C303030745C303030655C3030306E5C303030735C303030755C303030635C303030685C30303065} -\BKM@entry{id=2,dest={73656374696F6E2E32},srcline={57},srcfile={2F686F6D652F6E657665722F446F63756D656E74732F496E4E612F32365F536F53652F4147542F6167745F65786572636973652FFC62756E675F312F6167745FFC62756E675F312E746578}}{5C3337365C3337375C3030304B5C303030725C303030655C303030695C303030735C303030735C303030755C303030635C303030685C30303065} +\BKM@entry{id=1,dest={73656374696F6E2E31},srcline={1},srcfile={2E2F617566676162655F312E746578}}{5C3337365C3337375C303030535C303030705C303030615C3030306E5C3030306E5C303030625C3030305C3334345C303030755C3030306D5C303030655C3030305C3034305C3030305C3034365C3030305C3034305C303030425C303030725C303030655C303030695C303030745C303030655C3030306E5C303030735C303030755C303030635C303030685C30303065} +\BKM@entry{id=2,dest={73656374696F6E2E32},srcline={1},srcfile={2E2F617566676162655F322E746578}}{5C3337365C3337375C3030304B5C303030725C303030655C303030695C303030735C303030735C303030755C303030635C303030685C30303065} \babel@aux{ngerman}{} \@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 } @@ -16,8 +16,8 @@ \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Tiefensuchbaum in orange und MSB blau hinterlegt.}}{2}{figure.2}\protected@file@percent } \newlabel{fig:dfs}{{2}{2}{Tiefensuchbaum in orange und MSB blau hinterlegt}{figure.2}{}} \@writefile{toc}{\contentsline {section}{\numberline {2}Kreissuche}{2}{section.2}\protected@file@percent } -\BKM@entry{id=3,dest={73656374696F6E2E33},srcline={135},srcfile={2F686F6D652F6E657665722F446F63756D656E74732F496E4E612F32365F536F53652F4147542F6167745F65786572636973652FFC62756E675F312F6167745FFC62756E675F312E746578}}{5C3337365C3337375C303030455C303030755C3030306C5C303030655C303030725C303030775C303030655C303030675C30303065} -\BKM@entry{id=4,dest={73656374696F6E2E34},srcline={161},srcfile={2F686F6D652F6E657665722F446F63756D656E74732F496E4E612F32365F536F53652F4147542F6167745F65786572636973652FFC62756E675F312F6167745FFC62756E675F312E746578}}{5C3337365C3337375C303030475C303030725C303030615C303030705C303030685C3030306D5C3030306F5C303030645C303030655C3030306C5C3030306C5C303030695C303030655C303030725C303030755C3030306E5C30303067} +\BKM@entry{id=3,dest={73656374696F6E2E33},srcline={1},srcfile={2E2F617566676162655F332E746578}}{5C3337365C3337375C303030455C303030755C3030306C5C303030655C303030725C303030775C303030655C303030675C30303065} +\BKM@entry{id=4,dest={73656374696F6E2E34},srcline={1},srcfile={2E2F617566676162655F342E746578}}{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{4} diff --git a/übung_1/agt_übung_1.fdb_latexmk b/übung_1/agt_übung_1.fdb_latexmk index 9217161..4ce6b79 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"] 1776689922.84723 "/home/never/Documents/InNa/26_SoSe/AGT/agt_exercise/übung_1/agt_übung_1.tex" "agt_übung_1.pdf" "agt_übung_1" 1776689924.63041 0 +["lualatex"] 1776697900.74979 "/home/never/Documents/InNa/26_SoSe/AGT/agt_exercise/übung_1/agt_übung_1.tex" "agt_übung_1.pdf" "agt_übung_1" 1776697902.55915 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" 1776689920.30511 5918 404e74808326e7cb118bd3c5e2c239db "" + "/home/never/Documents/InNa/26_SoSe/AGT/agt_exercise/übung_1/agt_übung_1.tex" 1776697897.66689 304 d56b2c71c7672c3ab6ee2cdcfe258fc5 "" "/home/never/texmf/tex/latex/ngexrcs/ngexrcs.cls" 1776614186.59271 2041 f7d79ac75cecdfbe676fa2a93e60930b "" "/home/never/texmf/tex/latex/ngutils/ngutils.sty" 1776618253.70411 4493 7f39562722b52c0e9a76c17c4438174e "" "/usr/local/texlive/2025/texmf-dist/fonts/opentype/public/euler-math/Euler-Math.otf" 1761682777 433104 26cb5ed06a913ce89a33ff41234f5c7a "" @@ -171,8 +171,12 @@ "/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" 1776689924.38713 2915 9d880eef7bcc0cb3af62e0b7eba25b39 "lualatex" - "agt_übung_1.tex" 1776689920.30511 5918 404e74808326e7cb118bd3c5e2c239db "" + "agt_übung_1.aux" 1776697902.28891 2429 81986a9a774647930a5ac9e94cda7c51 "lualatex" + "agt_übung_1.tex" 1776697897.66689 304 d56b2c71c7672c3ab6ee2cdcfe258fc5 "" + "aufgabe_1.tex" 1776697508.46334 1313 9a143a43ac6e7341ab427860198035fe "" + "aufgabe_2.tex" 1776697727.20732 2574 4462577f3400843a00f378bf393c326c "" + "aufgabe_3.tex" 1776697749.8824 1092 7e430e37e65a2141c25db6271e3e6e91 "" + "aufgabe_4.tex" 1776697772.78547 718 3d1c5acc0d22695136e721c12d5042b8 "" "dfs.eps" 1776689817.37668 5896 bfdfa03e5701d0b1d7555aa426023dcf "" "msb.eps" 1776424417.18606 5913 81dafb89427e3a448260b7481993e119 "" (generated) diff --git a/übung_1/agt_übung_1.fls b/übung_1/agt_übung_1.fls index 7799f3d..e64a2d8 100644 --- a/übung_1/agt_übung_1.fls +++ b/übung_1/agt_übung_1.fls @@ -174,9 +174,13 @@ OUTPUT agt_übung_1.pdf INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/cm/cmmi10.tfm INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/cm/cmmi7.tfm +INPUT ./aufgabe_1.tex INPUT ./msb-eps-converted-to.pdf INPUT ./msb-eps-converted-to.pdf INPUT ./dfs-eps-converted-to.pdf INPUT ./dfs-eps-converted-to.pdf +INPUT ./aufgabe_2.tex INPUT /usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map +INPUT ./aufgabe_3.tex +INPUT ./aufgabe_4.tex INPUT ./agt_übung_1.aux diff --git a/übung_1/agt_übung_1.log b/übung_1/agt_übung_1.log index cc39179..b5a8513 100644 --- a/übung_1/agt_übung_1.log +++ b/übung_1/agt_übung_1.log @@ -1,8 +1,7 @@ -This is LuaHBTeX, Version 1.22.0 (TeX Live 2025) (format=lualatex 2026.2.8) 20 APR 2026 14:58 +This is LuaHBTeX, Version 1.22.0 (TeX Live 2025) (format=lualatex 2026.2.8) 20 APR 2026 18:53 restricted system commands enabled. -**/home/never/Documents/InNa/26_SoSe/AGT/agt_exercise/übung_1/agt_übung_1.tex - -(/home/never/Documents/InNa/26_SoSe/AGT/agt_exercise/übung_1/agt_übung_1.tex +**agt_übung_1.tex +(./agt_übung_1.tex LaTeX2e <2025-11-01> L3 programming layer <2026-01-19> Lua module: luaotfload 2024-12-03 v3.29 Lua based OpenType font support @@ -40,8 +39,7 @@ Inserting `luaotfload.aux.fixup_fontdata' in `luaotfload.patch_font_unsafe'. Inserting `luaotfload.aux.set_capheight' in `luaotfload.patch_font'. Inserting `luaotfload.aux.set_xheight' in `luaotfload.patch_font'. Inserting `luaotfload.rewrite_fontname' in `luaotfload.patch_font'. -Inserting `tracingstacklevels' in `input_level_string'. (/home/never/texmf/tex/ -latex/ngexrcs/ngexrcs.cls +Inserting `tracingstacklevels' in `input_level_string'. (./ngexrcs.cls Document Class: ngexrcs 2021/12/21 ADS Exercise class (/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrartcl.cls Document Class: scrartcl 2026/02/02 v3.49.2 KOMA-Script document class (article @@ -190,10 +188,9 @@ Package typearea Info: These are the values describing the layout: (typearea) \footskip = 47.6pt (typearea) \baselineskip = 13.6pt (typearea) on input line 15. -(/home/never/texmf/tex/latex/ngutils/ngutils.sty +(./ngutils.sty Package: ngutils 2025/12/24 Never's LaTeX utils - -(/usr/local/texlive/2025/texmf-dist/tex/generic/babel/babel.sty + (/usr/local/texlive/2025/texmf-dist/tex/generic/babel/babel.sty Package: babel 2026/01/26 v26.2 The multilingual framework for LuaLaTeX, pdfLaT eX and XeLaTeX @@ -1301,7 +1298,7 @@ Class scrartcl Info: loading recommended package `bookmark'. (scrartcl) `bookmarkpackage=false' before \begin{document} and (scrartcl) you can avoid this message adding: (scrartcl) \usepackage{bookmark} -(scrartcl) before \begin{document} on input line 7. +(scrartcl) before \begin{document} on input line 9. (/usr/local/texlive/2025/texmf-dist/tex/latex/bookmark/bookmark.sty Package: bookmark 2023-12-10 v1.31 PDF bookmarks (HO) @@ -1316,26 +1313,26 @@ Package babel Info: 'ngerman' activates 'german' shorthands. ) \openout1 = agt_übung_1.aux -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. (/usr/local/texlive/2025/texmf-dist/tex/context/base/mkii/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] @@ -1360,61 +1357,43 @@ File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv e )) \c@lstlisting=\count345 -Package tocbasic Info: setting babel extension for `lol' on input line 7. +Package tocbasic Info: setting babel extension for `lol' on input line 9. \scr@dte@lstlisting@maxnumwidth=\skip73 -Package hyperref Info: Link coloring OFF on input line 7. +Package hyperref Info: Link coloring OFF on input line 9. \g__cctab_next_cctab=\catcodetable17 -Package epstopdf Info: Source file: -(epstopdf) date: 2026-04-17 13:13:37 -(epstopdf) size: 5913 bytes -(epstopdf) Output file: -(epstopdf) date: 2026-04-17 13:14:32 -(epstopdf) size: 3745 bytes -(epstopdf) Command: -(epstopdf) \includegraphics on input line 35. -Package epstopdf Info: Output file is already uptodate. - -File: msb-eps-converted-to.pdf Graphic file (type pdf) - -Package luatex.def Info: msb-eps-converted-to.pdf used on input line 35. -(luatex.def) Requested size: 71.69984pt x 74.25963pt. -Package epstopdf Info: Source file: -(epstopdf) date: 2026-04-20 14:56:57 -(epstopdf) size: 5896 bytes -(epstopdf) Output file: -(epstopdf) date: 2026-04-20 14:57:58 -(epstopdf) size: 3721 bytes -(epstopdf) Command: -(epstopdf) \includegraphics on input line 50. -Package epstopdf Info: Output file is already uptodate. - -File: dfs-eps-converted-to.pdf Graphic file (type pdf) - -Package luatex.def Info: dfs-eps-converted-to.pdf used on input line 50. -(luatex.def) Requested size: 71.69984pt x 73.23537pt. + +(./aufgabe_1.tex + +File: figures.pdf Graphic file (type pdf) + +Package luatex.def Info: figures.pdf , page1 used on input line 26. +(luatex.def) Requested size: 71.69984pt x 74.32692pt. + +File: figures.pdf Graphic file (type pdf) + +Package luatex.def Info: figures.pdf , page2 used on input line 41. +(luatex.def) Requested size: 71.69984pt x 73.08054pt. LaTeX Warning: `h' float specifier changed to `ht'. -[1 +) (./aufgabe_2.tex [1 -{/usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map}<./msb-eps --converted-to.pdf>] [2<./dfs-eps-converted-to.pdf>] -Overfull \hbox (2.21837pt too wide) in paragraph at lines 153--155 +{/usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map}<./figures +.pdf>] [2<./figures.pdf>]) (./aufgabe_3.tex +Overfull \hbox (2.21837pt too wide) in paragraph at lines 19--21 \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 163--169 +) (./aufgabe_4.tex +Overfull \hbox (2.02118pt too wide) in paragraph at lines 3--9 \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] [4] (./agt_übung_1.aux) +[3]) [4] (./agt_übung_1.aux) *********** LaTeX2e <2025-11-01> L3 programming layer <2026-01-19> @@ -1422,30 +1401,28 @@ L3 programming layer <2026-01-19> ) Here is how much of LuaTeX's memory you used: - 22908 strings out of 476076 + 22934 strings out of 476076 100000,1373583 words of node,token memory allocated 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:655,3:303,4:4,5:433,6:52,7:4721,8:16,9:476,10:4,11:478 - 45020 multiletter control sequences out of 65536+600000 - 118 fonts using 28706879 bytes - 122i,8n,114p,11297b,574s stack positions out of 10000i,1000n,20000p,200000b,200000s + avail lists: 1:1,2:649,3:303,4:4,5:433,6:52,7:4721,8:16,9:473,10:4,11:478 + 45027 multiletter control sequences out of 65536+600000 + 115 fonts using 27962135 bytes + 122i,8n,114p,11236b,574s stack positions out of 10000i,1000n,20000p,200000b,200000s -Output written on agt_übung_1.pdf (4 pages, 48895 bytes). +gella-italic.otf> +Output written on agt_übung_1.pdf (4 pages, 49645 bytes). -PDF statistics: 132 PDF objects out of 1000 (max. 8388607) - 94 compressed objects within 1 object stream +PDF statistics: 126 PDF objects out of 1000 (max. 8388607) + 84 compressed objects within 1 object stream 17 named destinations out of 1000 (max. 131072) 33 words of extra memory for PDF output out of 10000 (max. 100000000) diff --git a/übung_1/agt_übung_1.pdf b/übung_1/agt_übung_1.pdf index 4ed4906..790ac7c 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 4a0257b..1bb5036 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 a2e5d4f..64e7c23 100644 --- a/übung_1/agt_übung_1.tex +++ b/übung_1/agt_übung_1.tex @@ -1,5 +1,7 @@ \documentclass{ngexrcs} \usepackage{hyperref} +\setkeys{Gin}{pagebox=artbox, width=0.2\textwidth} + \title{1. Übungsblatt} \subject{Algorithmische Graphentheorie} \author{Jasper Gude \and Pia Röttgers} @@ -7,173 +9,10 @@ \begin{document} \maketitle \points[\qquad]{20} -\section{Spannbäume \& Breitensuche} -Sei $G = \tup{V, E}$ ein zusammenhängender Graph mit Kantengewichten $w: E \to \NN$ -und $s \in V \deg$ ein ausgezeichneter Knoten. - -\begin{tasks} - -\item -\begin{quote} -Wenn $w(e) = 1$ für alle $e \in E$, dann ist der Breitensuchbaum mit -Quelle $s$ ein minimaler Spannbaum. -\end{quote} -Die Breitensuche berechnet in diesem -Fall den kürzesten Weg von jedem Knoten zum Knoten $s$, also den -Breitensuchbaum. Dieser spannt also einen minimalen Spannbaum auf. -\points{2} - -\item -\begin{quote} -Wenn $w(e) = 1$ für alle $e \in E$, dann ist jeder minimale Spannbaum -von $G$ ein Breitensuchbaum mit Quelle $s$. -\end{quote} -Falsch, siehe \autoref{fig:msb}. -\points{2} -\begin{figure}[h] - \centering - \includegraphics[width=0.2\textwidth]{msb.eps} - \caption{$\pi$-Zeiger des Breitensuchbaums und MSB blau hinterlegt.} - \label{fig:msb} -\end{figure} - -\item -\begin{quote} -Wenn $w(e) \in \set{1, 2, 3}$ für alle $e \in E$, dann ist jeder minimale -Spannbaum von $G$ ein Tiefensuchbaum mit Quelle $s$. -\end{quote} -Falsch, siehe \autoref{fig:dfs}. Der Minimale Spannbaum kann kein Tiefensuchbaum -sein. -\points{2} -\begin{figure}[h] - \centering - \includegraphics[width=0.2\textwidth]{dfs.eps} - \caption{Tiefensuchbaum in orange und MSB blau hinterlegt.} - \label{fig:dfs} -\end{figure} - -\end{tasks} - -\section{Kreissuche} -\begin{tasks} -\item - 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$ - - Wiederhole den Schritt solange bis $Q$ leer ist. - -% \begin{pseudocode}[caption=Hello World Algorithmische] -% EinfacherKreis(|Graph| $G$, |Vertex| $s$) -% Initialize($G$, $s$) -% $Q \gets$ new Queue -% $Q.$Enqueue($s$) -% $t_1 \gets nil$ -% $t_2 \gets s$ -% // Comment -% while $Q \neq \emptyset$ do -% $u \gets Q.$Dequeue -% $t_1 \gets t_2$ -% $t_2 \gets u$ -% foreach $v \in Adj[u]$ do -% if $v.color = white$ then -% $Q.$Enqueue($v$) -% $u.color \gets black$ -% if $t_1 = t_2$ then -% return $true$ -% 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} - \points{4} - -\item - Dadurch, dass wir nur Knoten - einfügen, die noch nicht entdeckt wurden, können wir nie auf dem selben Pfad - zu einem Knoten kommen. Das heißt, wenn wir einen schon entdeckten Knoten - finden, haben wir einen Kreis im Graphen gefunden. - - Der Algorithmus kann aufgrund der Struktur des Graphens (kein Multigraph, - keine Selbstkanten) nur Kreise der Länge mindestens 3 finden. - - Jeder Knoten wird nur einmal in die Queue eingefügt und nur einmal herausgenommen. - 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 - für diese Zusammenhangskomponente. Als Ausgabe geben wir ein Array von - 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} -\begin{quote} -Sei $G = \tup{V, E}$ ein ungerichteter, zusammenhängender Graph. Dann gilt: $G$ hat genau -dann einen Eulerweg, wenn die Anzahl an Knoten $v \in V$, für die gilt, dass $deg(v)$ -ungerade ist, genau $0$ oder $2$ ist. -\end{quote} - -\begin{itemize} - \item[$\seilpmi$] - 1. Fall: $0$ Knoten mit ungeradem Grad. Nach dem Satz in der Vorlesung - gibt es einen Eulerkreis. Im Eulerweg sind also Start- und Endknoten - identisch. - - 2. Fall: $2$ Knoten mit ungeradem Grad. Die beiden Knoten bilden den Start- - und Endknoten des Eulerwegs. Die Kante die den Eulerkreis schließen würde - braucht genau zwei Knoten, zu denen sie inzident ist. Nehmen wir diese Kante - weg, ergibt sich eine ungerader Grad an diesen beiden Knoten. - \item[$\implies$] - Ein Graph mit ungerader Anzahl an Knoten mit ungeradem Grad kann nicht - existieren, da die Summe aller Knoten mit ungeradem Grad gerade 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} +\input{aufgabe_1.tex} +\input{aufgabe_2.tex} +\input{aufgabe_3.tex} +\input{aufgabe_4.tex} \end{document} diff --git a/übung_1/aufgabe_1.tex b/übung_1/aufgabe_1.tex index 1893ad8..b214c4b 100644 --- a/übung_1/aufgabe_1.tex +++ b/übung_1/aufgabe_1.tex @@ -7,7 +7,7 @@ und $s \in V$ ein ausgezeichneter Knoten. \item \begin{quote} Wenn $w(e) = 1$ für alle $e \in E$, dann ist der Breitensuchbaum mit -Quelle $s$ ein minimaler Spannbaum +Quelle $s$ ein minimaler Spannbaum. \end{quote} Die Breitensuche berechnet in diesem Fall den kürzesten Weg von jedem Knoten zum Knoten $s$, also den @@ -23,7 +23,7 @@ Falsch, siehe \autoref{fig:msb}. \points{2} \begin{figure}[h] \centering - \includegraphics[width=0.2\textwidth]{msb.eps} + \includegraphics[page=1]{figures.pdf} \caption{$\pi$-Zeiger des Breitensuchbaums und MSB blau hinterlegt.} \label{fig:msb} \end{figure} @@ -38,7 +38,7 @@ sein. \points{2} \begin{figure}[h] \centering - \includegraphics[width=0.2\textwidth]{dfs.eps} + \includegraphics[page=2]{figures} \caption{Tiefensuchbaum in orange und MSB blau hinterlegt.} \label{fig:dfs} \end{figure} diff --git a/übung_1/aufgabe_2.tex b/übung_1/aufgabe_2.tex new file mode 100644 index 0000000..266a448 --- /dev/null +++ b/übung_1/aufgabe_2.tex @@ -0,0 +1,78 @@ +\section{Kreissuche} +\begin{tasks} +\item + 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$ + + Wiederhole den Schritt solange bis $Q$ leer ist. + +% \begin{pseudocode}[caption=Hello World Algorithmische] +% EinfacherKreis(|Graph| $G$, |Vertex| $s$) +% Initialize($G$, $s$) +% $Q \gets$ new Queue +% $Q.$Enqueue($s$) +% $t_1 \gets nil$ +% $t_2 \gets s$ +% // Comment +% while $Q \neq \emptyset$ do +% $u \gets Q.$Dequeue +% $t_1 \gets t_2$ +% $t_2 \gets u$ +% foreach $v \in Adj[u]$ do +% if $v.color = white$ then +% $Q.$Enqueue($v$) +% $u.color \gets black$ +% if $t_1 = t_2$ then +% return $true$ +% 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} + \points{4} + +\item + Dadurch, dass wir nur Knoten + einfügen, die noch nicht entdeckt wurden, können wir nie auf dem selben Pfad + zu einem Knoten kommen. Das heißt, wenn wir einen schon entdeckten Knoten + finden, haben wir einen Kreis im Graphen gefunden. + + Der Algorithmus kann aufgrund der Struktur des Graphens (kein Multigraph, + keine Selbstkanten) nur Kreise der Länge mindestens 3 finden. + + Jeder Knoten wird nur einmal in die Queue eingefügt und nur einmal herausgenommen. + 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 + für diese Zusammenhangskomponente. Als Ausgabe geben wir ein Array von + 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} + diff --git a/übung_1/aufgabe_3.tex b/übung_1/aufgabe_3.tex new file mode 100644 index 0000000..ef594c1 --- /dev/null +++ b/übung_1/aufgabe_3.tex @@ -0,0 +1,26 @@ +\section{Eulerwege} +\begin{quote} +Sei $G = \tup{V, E}$ ein ungerichteter, zusammenhängender Graph. Dann gilt: $G$ hat genau +dann einen Eulerweg, wenn die Anzahl an Knoten $v \in V$, für die gilt, dass $deg(v)$ +ungerade ist, genau $0$ oder $2$ ist. +\end{quote} + +\begin{itemize} + \item[$\seilpmi$] + 1. Fall: $0$ Knoten mit ungeradem Grad. Nach dem Satz in der Vorlesung + gibt es einen Eulerkreis. Im Eulerweg sind also Start- und Endknoten + identisch. + + 2. Fall: $2$ Knoten mit ungeradem Grad. Die beiden Knoten bilden den Start- + und Endknoten des Eulerwegs. Die Kante die den Eulerkreis schließen würde + braucht genau zwei Knoten, zu denen sie inzident ist. Nehmen wir diese Kante + weg, ergibt sich eine ungerader Grad an diesen beiden Knoten. + \item[$\implies$] + Ein Graph mit ungerader Anzahl an Knoten mit ungeradem Grad kann nicht + existieren, da die Summe aller Knoten mit ungeradem Grad gerade 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} + diff --git a/übung_1/aufgabe_4.tex b/übung_1/aufgabe_4.tex new file mode 100644 index 0000000..f40187f --- /dev/null +++ b/übung_1/aufgabe_4.tex @@ -0,0 +1,16 @@ +\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} diff --git a/übung_1/figures.pdf b/übung_1/figures.pdf new file mode 100644 index 0000000..181f17a Binary files /dev/null and b/übung_1/figures.pdf differ diff --git a/übung_1/msb-eps-converted-to.pdf b/übung_1/msb-eps-converted-to.pdf deleted file mode 100644 index 80828fb..0000000 Binary files a/übung_1/msb-eps-converted-to.pdf and /dev/null differ diff --git a/übung_1/msb.eps b/übung_1/msb.eps deleted file mode 100644 index 3f5087f..0000000 --- a/übung_1/msb.eps +++ /dev/null @@ -1,180 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: cairo 1.18.4 (https://cairographics.org) -%%CreationDate: Fri Apr 17 13:13:37 2026 -%%Pages: 1 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%BoundingBox: 1 1 141 146 -%%EndComments -%%BeginProlog -50 dict begin -/q { gsave } bind def -/Q { grestore } bind def -/cm { 6 array astore concat } bind def -/w { setlinewidth } bind def -/J { setlinecap } bind def -/j { setlinejoin } bind def -/M { setmiterlimit } bind def -/d { setdash } bind def -/m { moveto } bind def -/l { lineto } bind def -/c { curveto } bind def -/h { closepath } bind def -/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto - 0 exch rlineto 0 rlineto closepath } bind def -/S { stroke } bind def -/f { fill } bind def -/f* { eofill } bind def -/n { newpath } bind def -/W { clip } bind def -/W* { eoclip } bind def -/BT { } bind def -/ET { } bind def -/BDC { mark 3 1 roll /BDC pdfmark } bind def -/EMC { mark /EMC pdfmark } bind def -/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def -/Tj { show currentpoint cairo_store_point } bind def -/TJ { - { - dup - type /stringtype eq - { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse - } forall - currentpoint cairo_store_point -} bind def -/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore - cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def -/Tf { pop /cairo_font exch def /cairo_font_matrix where - { pop cairo_selectfont } if } bind def -/Td { matrix translate cairo_font_matrix matrix concatmatrix dup - /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point - /cairo_font where { pop cairo_selectfont } if } bind def -/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def - cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def -/g { setgray } bind def -/rg { setrgbcolor } bind def -/d1 { setcachedevice } bind def -/cairo_data_source { - CairoDataIndex CairoData length lt - { CairoData CairoDataIndex get /CairoDataIndex CairoDataIndex 1 add def } - { () } ifelse -} def -/cairo_flush_ascii85_file { cairo_ascii85_file status { cairo_ascii85_file flushfile } if } def -/cairo_image { image cairo_flush_ascii85_file } def -/cairo_imagemask { imagemask cairo_flush_ascii85_file } def -%%EndProlog -%%BeginSetup -%%BeginResource: font f-0-0 -%!FontType1-1.1 f-0-0 1.0 -11 dict begin -/FontName /f-0-0 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/FontBBox {0 -11 615 461 } readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 1 /g1 put -dup 2 /g2 put -readonly def -currentdict end -currentfile eexec -f983ef0097ece636fb4a96c74d26ab84185f6dfa4a16a7a1c27bbe3f1156aea698df336d20b467 -b10e7f33846656653c5ac6962759d3056cbdb3190bac614b984bf5a132dc418192443014ba63de -800d392b6fea026574bb2535fd7bb5338f35bf15a88ea328fdaa49670c7852e3d060f3c5d6b07f -2ef6d0f22646c5d18e19a2ae3ee120390f6dd96f76dcf1e127de5e9299077a00c17c0d71e36e5b -9d5ec58fceda57739a6a4214d4b79d6c48d2784b60c320323c7acddddf34db833cac0cf109f799 -69d114a330d372e5c978a66acc84e3fe5557f6240856a013ffaa0199444e5c5036f775eba4a5c5 -8cde66cf604b9aca2178431127b8a1ff7ed633a65c04600af5f573483112251ca90bc9cf8825c7 -41412dda705317b7cb229dd377ff3d18e94daa9e3775f4bac0137bfe9fba4d6b483d953979112a -bf427c7c9bdf825f48798ee0eb746b23cb070c7c481f85443e64eeec9f66b3edfccfdc2c16a203 -ca777ff2c2c14e0aa1f661055f6fdd72b65db3ccf92480447ea016d9726393ed80ad5b1785eca8 -5e25fdbe1ad5f07fa5ad177275289813554724caa8d8f8dfcf5f56edeba95a5cf9247d01f435ff -7e5962414983134fbbb8c5cb3741b7b7c833c33c469326883dfb3eb9623f9dbf5b534b10c52ef6 -ff75cbb31c24503e9056591d1b0085d66acb1a3f697c510465ac4cbb2f71c4c4a1c4f650004c5c -5aaeb301425a528b472ce58534f7e6096799d1086297f4c4b0caacafcbca192359573ec2df42ff -7da7a361c4cbe8ca489df2e40e8748ba34fd8e6d84e1574980cfbff9e77500182ca187dd8c8e95 -d21d0cf4a486a079871cbaf94d518a87729eeef6e6430d3ab74f327b1e3af8f4c1369551e88f26 -ea659e2f489970f30a552524a73f52aecd127501dc3f2a569516600844311a456656d924e6a5ed -b59fc72a9f7c0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndResource -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -%%PageBoundingBox: 1 1 141 146 -%%EndPageSetup -q 1 1 140 145 rectclip -1 0 0 -1 0 147 cm q -0.651 0.807 0.89 rg -6 w -0 J -1 j -[] 0.0 d -10 M 7 28 m 71 140 l S -0 g -1.2 w -7 28 m 71 140 l S -0.651 0.807 0.89 rg -6 w -71 140 m 135 28 l S -0.5 g -1.2 w -135 28 m 92.332 12 49.668 12 7 28 c S -11.59 26.281 m 18.961 26.004 l 17.324 21.641 l h -11.59 26.281 m f* -11.59 26.281 m 18.961 26.004 l 17.324 21.641 l h -11.59 26.281 m S -71 140 m 28.332 108 7 70.668 7 28 c S -7 32.898 m 4.668 39.898 l 9.332 39.898 l h -7 32.898 m f* -7 32.898 m 4.668 39.898 l 9.332 39.898 l h -7 32.898 m S -0 g -12.398 28 m 12.398 20.801 1.602 20.801 1.602 28 c 1.602 35.199 12.398 35.199 - 12.398 28 c h -12.398 28 m f* -140.398 28 m 140.398 20.801 129.602 20.801 129.602 28 c 129.602 35.199 -140.398 35.199 140.398 28 c h -140.398 28 m f* -76.398 140 m 76.398 132.801 65.602 132.801 65.602 140 c 65.602 147.199 -76.398 147.199 76.398 140 c h -76.398 140 m f* -135 28 m 71 140 l S -7 28 m 135 28 l S -Q q -3 8.953 8.582 11.285 re W n -0 g -BT -23.910337 0 0 -23.910337 2.4208 19.976 Tm -/f-0-0 1 Tf -<01>Tj -ET -Q q -65 1.336 13.328 10.902 re W n -0.5 g -BT -23.910337 0 0 -23.910337 63.6716 11.976 Tm -/f-0-0 1 Tf -<02>Tj -ET -Q q -9 89.336 13.328 10.902 re W n -0.5 g -BT -23.910337 0 0 -23.910337 7.6716 99.976 Tm -/f-0-0 1 Tf -<02>Tj -ET -Q Q -showpage -%%Trailer -end -%%EOF diff --git a/übung_1/msb.ipe b/übung_1/msb.ipe deleted file mode 100644 index 4c0416d..0000000 --- a/übung_1/msb.ipe +++ /dev/null @@ -1,691 +0,0 @@ - - - - - - - -0 0 m --1 0.333 l --1 -0.333 l -h - - - - -0 0 m --1 0.333 l --1 -0.333 l -h - - - - -0 0 m --1 0.333 l --0.8 0 l --1 -0.333 l -h - - - - -0 0 m --1 0.333 l --0.8 0 l --1 -0.333 l -h - - - - -0.6 0 0 0.6 0 0 e -0.4 0 0 0.4 0 0 e - - - - -0.6 0 0 0.6 0 0 e - - - - - -0.5 0 0 0.5 0 0 e - - -0.6 0 0 0.6 0 0 e -0.4 0 0 0.4 0 0 e - - - - - --0.6 -0.6 m -0.6 -0.6 l -0.6 0.6 l --0.6 0.6 l -h --0.4 -0.4 m -0.4 -0.4 l -0.4 0.4 l --0.4 0.4 l -h - - - - --0.6 -0.6 m -0.6 -0.6 l -0.6 0.6 l --0.6 0.6 l -h - - - - - --0.5 -0.5 m -0.5 -0.5 l -0.5 0.5 l --0.5 0.5 l -h - - --0.6 -0.6 m -0.6 -0.6 l -0.6 0.6 l --0.6 0.6 l -h --0.4 -0.4 m -0.4 -0.4 l -0.4 0.4 l --0.4 0.4 l -h - - - - - - --0.43 -0.57 m -0.57 0.43 l -0.43 0.57 l --0.57 -0.43 l -h - - --0.43 0.57 m -0.57 -0.43 l -0.43 -0.57 l --0.57 0.43 l -h - - - - - -0 0 m --1 0.333 l --1 -0.333 l -h - - - - -0 0 m --1 0.333 l --0.8 0 l --1 -0.333 l -h - - - - -0 0 m --1 0.333 l --0.8 0 l --1 -0.333 l -h - - - - --1 0.333 m -0 0 l --1 -0.333 l - - - - -0 0 m --1 0.333 l --1 -0.333 l -h --1 0 m --2 0.333 l --2 -0.333 l -h - - - - -0 0 m --1 0.333 l --1 -0.333 l -h --1 0 m --2 0.333 l --2 -0.333 l -h - - - - -0.5 0 m --0.5 0.333 l --0.5 -0.333 l -h - - - - -0.5 0 m --0.5 0.333 l --0.5 -0.333 l -h - - - - -0.5 0 m --0.5 0.333 l --0.3 0 l --0.5 -0.333 l -h - - - - -0.5 0 m --0.5 0.333 l --0.3 0 l --0.5 -0.333 l -h - - - - -1 0 m -0 0.333 l -0 -0.333 l -h -0 0 m --1 0.333 l --1 -0.333 l -h - - - - -1 0 m -0 0.333 l -0 -0.333 l -h -0 0 m --1 0.333 l --1 -0.333 l -h - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --0.7 0 m --1.7 0.333 l --1.7 -0.333 l -h - - - - --0.7 0 m --1.7 0.333 l --1.7 -0.333 l -h - - - - --0.7 0 m --1.7 0.333 l --0.8 0 l --1.7 -0.333 l -h - - - - --0.7 0 m --1.7 0.333 l --0.8 0 l --1.7 -0.333 l -h - - - - --1.7 0.333 m --0.7 0 l --1.7 -0.333 l - - - - --0.7 0 m --1.7 0.333 l --1.7 -0.333 l -h --1.7 0 m --2.7 0.333 l --2.7 -0.333 l -h - - - - --0.7 0 m --1.7 0.333 l --1.7 -0.333 l -h --1.7 0 m --2.7 0.333 l --2.7 -0.333 l -h - - - - -100 204 m -4 0 0 4 100 200 96 200 a -96 100 l -4 0 0 4 100 100 100 96 a -300 96 l -4 0 0 4 300 100 304 100 a -304 200 l -4 0 0 4 300 200 300 204 a -h - - - - -100 204 m -4 0 0 4 100 200 96 200 a -96 100 l -4 0 0 4 100 100 100 96 a -300 96 l -4 0 0 4 300 100 304 100 a -304 200 l -4 0 0 4 300 200 300 204 a -h - - - - -100 204 m -4 0 0 4 100 200 96 200 a -96 100 l -4 0 0 4 100 100 100 96 a -300 96 l -4 0 0 4 300 100 304 100 a -304 200 l -4 0 0 4 300 200 300 204 a -h - - - - -96 96 m -304 96 l -304 204 l -96 204 l -h - - - - -96 96 m -304 96 l -304 204 l -96 204 l -h - - - - -92 92 m -308 92 l -308 208 l -92 208 l -h - - - - -100 96 m -110 96 s -110 92 -106 88 s -116 92 -118 96 s -300 96 l -4 0 0 4 300 100 304 100 a -304 200 l -4 0 0 4 300 200 300 204 a -100 204 l -4 0 0 4 100 200 96 200 a -96 100 l -4 0 0 4 100 100 100 96 a -h - - - - -100 96 m -186 96 s -186 92 -182 88 s -192 92 -194 96 s -300 96 l -4 0 0 4 300 100 304 100 a -304 200 l -4 0 0 4 300 200 300 204 a -100 204 l -4 0 0 4 100 200 96 200 a -96 100 l -4 0 0 4 100 100 100 96 a -h - - - - -100 96 m -110 96 s -110 92 -106 88 s -116 92 -118 96 s -300 96 l -4 0 0 4 300 100 304 100 a -304 200 l -4 0 0 4 300 200 300 204 a -100 204 l -4 0 0 4 100 200 96 200 a -96 100 l -4 0 0 4 100 100 100 96 a -h - - - - -100 96 m -110 96 s -110 92 -106 88 s -116 92 -118 96 s -300 96 l -4 0 0 4 300 100 304 100 a -304 200 l -4 0 0 4 300 200 300 204 a -100 204 l -4 0 0 4 100 200 96 200 a -96 100 l -4 0 0 4 100 100 100 96 a -h - - - - -100 96 m -186 96 s -186 92 -182 88 s -192 92 -194 96 s -300 96 l -4 0 0 4 300 100 304 100 a -304 200 l -4 0 0 4 300 200 300 204 a -100 204 l -4 0 0 4 100 200 96 200 a -96 100 l -4 0 0 4 100 100 100 96 a -h - - - - -100 96 m -110 96 s -110 92 -106 88 s -116 92 -118 96 s -300 96 l -4 0 0 4 300 100 304 100 a -304 200 l -4 0 0 4 300 200 300 204 a -100 204 l -4 0 0 4 100 200 96 200 a -96 100 l -4 0 0 4 100 100 100 96 a -h - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\usepackage[ngerman]{babel} -\usepackage[sansdefault]{fontsetup} -\usepackage{ngutils} - -\renewcommand{\theoremfont}{\normalfont\bfseries\color{dark blue}} -\renewcommand{\definitionfont}{\normalfont\bfseries\color{dark gray}} - -\newcommand{\labelfont}{\normalfont\bfseries\color{dark blue}} - -%\setlength{\leftmargini}{1.33em} -%\setlength{\leftmarginii}{1.33em} -%\setlength{\leftmarginiii}{1.33em} -%\setlength{\leftmarginvi}{1.33em} - -\renewcommand{\labelenumi}{\labelfont\arabic{enumi}.} -\renewcommand{\labelenumii}{\labelfont\alph{enumii})} -\renewcommand{\labelenumiii}{\labelfont\roman{enumiii}.} -\renewcommand{\labelenumiv}{\labelfont\Alph{enumiv}.} - -\renewcommand{\labelitemi}{\labelfont $\blockfull$} -\renewcommand{\labelitemii}{\labelfont $\blackpointerright$} -\renewcommand{\labelitemiii}{\labelfont $\bullet$} -\renewcommand{\labelitemiv}{\labelfont $\bullet$} - -\setlength{\fboxsep}{1pt} - -\newcommand{\bk}{\color{black}} -\newcommand{\wt}{\color{white}} -\newcommand{\bu}{\color{dark blue}} -\newcommand{\bn}{\color{dark brown}} -\newcommand{\cn}{\color{dark cyan}} -\newcommand{\gy}{\color{dark gray}} -\newcommand{\gn}{\color{dark green}} -\newcommand{\og}{\color{dark orange}} -\newcommand{\pk}{\color{dark pink}} -\newcommand{\pl}{\color{dark purple}} -\newcommand{\rd}{\color{dark red}} -\newcommand{\yo}{\color{dark yellow}} -\newcommand{\tl}{\color{title}} - - - - - - - - - -192 384 m -256 272 l - - -192 384 m -256 272 l - - -256 272 m -320 384 l - - -320 384 m -256 408 -192 384 c - - -256 272 m -192 320 -192 384 c - - - - - -320 384 m -256 272 l - - -192 384 m -320 384 l - -$s$ -\pi -\pi - - diff --git a/übung_1/ngexrcs.cls b/übung_1/ngexrcs.cls new file mode 100644 index 0000000..1663cd6 --- /dev/null +++ b/übung_1/ngexrcs.cls @@ -0,0 +1,76 @@ +% vim: set filetype:tex + +% Identification % +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{ngexrcs}[2021/12/21 ADS Exercise class] + +% Handle options % +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +\ProcessOptions\relax + +% More declarations % +\LoadClass{scrartcl} + +\KOMAoptions{mpinclude=true} +\recalctypearea + +\RequirePackage{ngutils} +\RequirePackage{enumitem} + + +% define fonts +\RequirePackage{fontspec} +%\RequirePackage{tgpagella} +%\RequirePackage{tgheros} +%\RequirePackage{euler-math} +\RequirePackage[math-style=upright]{unicode-math} +\setmainfont{TeX Gyre Pagella} +\setsansfont{TeX Gyre Heros} +\setmonofont{TeX Gyre Cursor} +\setmathfont{Euler Math} + +\setlength{\marginparwidth}{1.5\marginparwidth} +\setlength{\fboxrule}{\heavyrulewidth} + + +% +% \renewcommand\theenumi{\@alph\c@enumi} +% \renewcommand\theenumii{\@arabic\c@enumii} +%\renewcommand\theenumiii{\@roman\c@enumiii} +%\renewcommand\theenumiv{\@Alph\c@enumiv} + +% \renewcommand\labelenumi{\theenumi)} +% \renewcommand\labelenumii{\theenumii.} +%\renewcommand\labelenumiii{\theenumiii.} +%\renewcommand\labelenumiv{\theenumiv.} + +% Use sansfont for all title elements +\addtokomafont{titlehead}{\sffamily} +\addtokomafont{subject}{\normalfont \sffamily \itshape} +\addtokomafont{title}{\sffamily} +\addtokomafont{subtitle}{\sffamily} +\addtokomafont{author}{\sffamily} +\addtokomafont{date}{\sffamily} +\addtokomafont{publishers}{\sffamily} + +% Use serif font for headings +\addtokomafont{disposition}{\rmfamily} + +% Let sections be formated as in: Aufgabe 1 -- Section title +\renewcommand*{\sectionformat}{Aufgabe \thesection\autodot\enskip--\enskip} + +% Let points of an exercise be printed as in: [__ / 2] +\newkomafont{points}{\sffamily} +\newcommand\points[2][\quad]{\marginline{\framebox{{\usekomafont{points}#1 \textbf{/} #2}}}} + +\newenvironment{tasks}[1][1em] +{ +\setlist{leftmargin=*} +\renewcommand\theenumi{\@alph\c@enumi} +\renewcommand\theenumii{\@arabic\c@enumii} +\renewcommand\labelenumi{\theenumi)} +\renewcommand\labelenumii{\theenumii.} +\begin{enumerate} +}{% +\end{enumerate} +} diff --git a/übung_1/ngutils.sty b/übung_1/ngutils.sty new file mode 100644 index 0000000..2dd431e --- /dev/null +++ b/übung_1/ngutils.sty @@ -0,0 +1,150 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{ngutils}[2025/12/24 Never's LaTeX utils] + +\RequirePackage[ngerman]{babel} +\RequirePackage{graphicx} +\RequirePackage{tabularx} +\RequirePackage{booktabs} +\RequirePackage{listings} + + +\lstnewenvironment{pseudocode}[1][] %defines the algorithm listing environment +{ + \renewcommand{\lstlistingname}{Algorithmus} + \lstset{ %this is the stype + mathescape=true, + columns=fullflexible, + basicstyle=\normalfont, + identifierstyle=\scshape, + keywordstyle=\bfseries, + keywords={, new, if, then, else, while, for, in, to, up, down, foreach, do, return}, + commentstyle=\itshape, + comment=[l]//, + delim=[is][\normalfont]{|}{|}, + tabsize=3, + frame=tb, + framerule=1pt, + #1 % this is to add specific settings to an usage of this environment (for instnce, the caption and referable label) + } +} +{} + +\newcommand{\seilpmi}{\ensuremath{\Longleftarrow}} + +\newcommand\NN{\ensuremath{\mathbb{N}}} +\newcommand\ZZ{\ensuremath{\mathbb{Z}}} +\newcommand\QQ{\ensuremath{\mathbb{Q}}} +\newcommand\RR{\ensuremath{\mathbb{R}}} +\newcommand\CC{\ensuremath{\mathbb{C}}} +\newcommand\PP{\ensuremath{\mathbb{P}}} + +\newcommand\Oh{\ensuremath{\mathcal{O}}} +\newcommand\oh{\ensuremath{\scriptstyle{\mathcal{O}}}} +\newcommand\Eh{\ensuremath{\mathrm{E}}} +\newcommand\Var{\ensuremath{\mathrm{Var}}} + +\newcommand\parens[1]{\ensuremath{\left(#1\right)}} +\newcommand\brackets[1]{\ensuremath{\left[#1\right]}} +\newcommand\braces[1]{\ensuremath{\left\{#1\right\}}} +\newcommand\angled[1]{\ensuremath{\left\langle#1\right\rangle}} + +\newcommand\tup[1]{\parens{#1}} +\newcommand\ivl[1]{\brackets{#1}} +\newcommand\set[1]{\braces{#1}} +\newcommand\arr[1]{\angled{#1}} +\newcommand\abs[1]{\ensuremath{\lvert#1\rvert}} +\newcommand\norm[1]{\ensuremath{\lVert#1\rVert}} +\newcommand\ceil[1]{\ensuremath{\lceil#1\rceil}} +\newcommand\floor[1]{\ensuremath{\lfloor#1\rfloor}} + +\newcommand\alg[2]{{\normalfont\scshape#1}{\normalfont(#2)}} +\newcommand\algt[1]{{\normalfont\scshape#1}} +\newcommand\com[1]{{\normalfont\itshape/\!\!/ #1}} + +\newenvironment{algorithmic}[1][1em]{ + \begin{minipage}[t]{\dimexpr\linewidth} + \bfseries + \begin{tabbing} + \hspace{#1}\=\hspace{#1}\=\hspace{#1}\=\hspace{#1}\=\hspace{#1}\=\hspace{#1}\=\hspace{#1}\=\hspace{#1}\=\kill + }{% + \end{tabbing} + \end{minipage} +} + +% \newenvironment{algorithm}[1][1em]{ +% \begin{center} +% \begin{minipage}[t]{\dimexpr\linewidth} +% \bfseries +% \begin{tabbing} +% \hspace{#1}\=\hspace{#1}\=\hspace{#1}\=\hspace{#1}\=\hspace{#1}\=\hspace{#1}\=\hspace{#1}\=\hspace{#1}\=\kill +% }{% +% \end{tabbing} +% \end{minipage} +% \end{center} +% } + +\makeatletter +\newcounter{algorithm}% the counter +\renewcommand*\thealgorithm{\arabic{algorithm}}% the default format for the counter +\newcommand*\fps@algorithm{tbp}% default floating options +\newcommand*\ftype@algorithm{4}% float type number, needs to be a power of 2; % \ftype@figure=1, \ftype@table=2 +\newcommand*\ext@algorithm{loa}% extension of file for the list of schemes +\newcommand*\fnum@algorithm{\algorithmname\nobreakspace\thealgorithm}% used in caption +\newcommand*\algorithmname{Algorithmus}% the name +\newcommand*\listalgorithmname{Algorithmenverzeichnis}% the name of the list +\newenvironment{algorithm}{\@float{algorithm}}{\end@float}% the environment +\newenvironment{algorithm*}{\@dblfloat{algorithm}}{\end@dblfloat}% the starred % version for twocolumn documents +\newcommand*\listofalgorithms{% the list of schemes + \section*{\listalgorithmname} + \@mkboth + {\MakeUppercase\listalgorithmname} + {\MakeUppercase\listalgorithmname} + \@starttoc{\ext@algorithm} } + \let\l@algorithm\l@figure % layout of list is the same as for figures +\makeatother + +\newlength{\theoremskip} +\setlength{\theoremskip}{6em} + +\newcommand{\theoremfont}{\normalfont\bfseries} +\newcommand{\definitionfont}{\normalfont\bfseries} + +\newenvironment{theoremic}[2][\theoremfont]{ + {#1 #2} + \hfill + \begin{minipage}[t]{\the\dimexpr\linewidth-\theoremskip\relax} + }{ + \end{minipage} +} + +\newenvironment{theorem}{ + \begin{theoremic}{Satz.} + }{ + \end{theoremic} +} + +\newenvironment{lemma}{ + \begin{theoremic}{Lemma.} + }{ + \end{theoremic} +} + +\newenvironment{proof}{ + \begin{theoremic}{Beweis.} + }{ + \end{theoremic} +} + +\newenvironment{definition}{ + \begin{theoremic}[\definitionfont]{Definition.} + }{ + \end{theoremic} +} + +\newenvironment{example}{ + \begin{theoremic}[\definitionfont]{Beispiel.} + }{ + \end{theoremic} +} + +