Slides for tomorrow

pull/2/head
Oliver Kennedy 2022-10-13 16:48:23 -04:00
parent 027c3e9289
commit a008588efa
Signed by: okennedy
GPG Key ID: 3E5F9B3ABD3FDB60
11 changed files with 5834 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

View File

@ -347,6 +347,8 @@ schedule:
- date: 10/14/22 - date: 10/14/22
topic: Order Relations, Priority Queues topic: Order Relations, Priority Queues
dow: Fri dow: Fri
section_b:
slides: slide/19b-Orderings.html
- week: 8 - week: 8
lectures: lectures:
- date: 10/17/22 - date: 10/17/22

View File

@ -480,7 +480,7 @@ def DFSOne(graph: Graph[…], v: Graph[…]#Vertex)
$ = O(\sum_{v \in V} deg(v))$ $ = O(\sum_{v \in V} deg(v))$
</p> </p>
<p class="fragment"> <p class="fragment">
$ = O(\frac{1}{2} |E|)$ (by rule) $ = O(2 |E|)$ (by rule)
</p> </p>
<p class="fragment"> <p class="fragment">
$ = O(|E|)$ $ = O(|E|)$

View File

@ -0,0 +1,570 @@
---
template: templates/cse250_2022_slides.erb
title: Graph Exploration
date: Oct 14, 2022
textbookTBD: Ch. 15.3
cat: graphics/19b/cat.png
---
<section>
<h4 class="slide_title">Examples</h4>
<ul>
<li>$(B, 10)$, $(D, 3)$, $(E, 40)$</li>
<li class="fragment"><b>“A+”</b>, <b>“C”</b>, <b>“B-”</b></li>
<li class="fragment">Taco Tuesday, Fish Friday, Meatless Monday</li>
<li class="fragment">The Princess Bride, Crouching Tiger Hidden Dragon, Rob Roy</li>
<li class="fragment">Aardvark, Baboon, Capybara, Donkey, Echidna, ...</li>
</ul>
</section>
<section>
<h4 class="slide_title">Ordering</h4>
<p>An ordering $(A, \leq)$ (an ordering over type $A$) is ...</p>
<ul>
<li>A collection (set) of things of type $A$</li>
<li>A "relation" or comparator $\leq$ that relates two things</li>
</ul>
</section>
<section>
<dl>
<div>
<dt>$5 \leq 30 \leq 999$</dt>
<dd>Numerical order</dd>
</div>
<div>
<dt>$(E, 40) \leq (B, 10) \leq (D, 3)$</dt>
<dd>Reverse-numerical order on the 2nd field</dd>
</div>
<div>
<dt>$C+ \leq B- \leq B \leq B+ \leq A- \leq A$</dt>
<dd>Letter grades</dd>
</div>
<div>
<dt>$AA \leq AM \leq BZ \leq CA \leq CD$</dt>
<dd>Compare 1st letter, if same compare 2nd, if same compare 3rd, ... <span class="fragment">("Lexical Order")</span></dd>
</div>
</dl>
</section>
<section>
<h4 class="slide_title">Ordering Properties</h4>
<dl>
<div class="fragment">
<dt>Crouching Tiger Hidden Dragon $\leq$ Princess Bride</dt>
<dd>Carey Elwes and Mandy Patankin have amazing banter</dd>
</div>
<div class="fragment">
<dt>Princess Bride $\leq$ Rob Roy</dt>
<dd>Rob Roy: Best climactic duel of all time</dd>
</div>
<div class="fragment">
<dt>Rob Roy $\leq$ Crouching Tiger Hidden Dragon</dt>
<dd>A ton of amazingly technical fights</dd>
</div>
</dl>
</section>
<section>
<h4 class="slide_title">Ordering Properties</h4>
<svg data-src="graphics/19b/films-not-transitive.svg"/>
</section>
<section>
<h4 class="slide_title">Ordering Properties</h4>
<p>An ordering needs to be...</p>
<dl>
<dt>Reflexive</dt>
<dd>$x \leq x$</dd>
<dt>Antisymmetric</dt>
<dd>If $x \leq y$ and $y \leq x$ then $x = y$</dd>
<dt>Transitive</dt>
<dd>If $x \leq y$ and $y \leq z$ then $x \leq z$</dd>
</dl>
</section>
<section>
<h4 class="slide_title">Ordering Properties</h4>
<p>Course 1 $\leq$ Course 2 iff Course 1 is a prereq of Course 2</p>
<ul>
<li>CSE 115 $\leq$ CSE 116</li>
<li>CSE 116 $\leq$ CSE 250</li>
<li>CSE 115 $\leq$ CSE 191</li>
<li>CSE 191 $\leq$ CSE 250</li>
</ul>
</section>
<section>
<h4 class="slide_title">Ordering Properties</h4>
<svg data-src="graphics/19b/partial-order.svg"/>
</section>
<section>
<p>Is this a valid ordering?</p>
<p class="fragment"><b>Yes!</b></p>
<p class="fragment">(<u>Partial order</u>, as opposed to <u>Total order</u>)</p>
</section>
<section>
<h4 class="slide_title">(Partial)Ordering Properties</h4>
<p>A partial ordering needs to be...</p>
<dl>
<dt>Reflexive</dt>
<dd>$x \leq x$</dd>
<dt>Antisymmetric</dt>
<dd>If $x \leq y$ and $y \leq x$ then $x = y$</dd>
<dt>Transitive</dt>
<dd>If $x \leq y$ and $y \leq z$ then $x \leq z$</dd>
</dl>
</section>
<section>
<h4 class="slide_title">(Total)Ordering Properties</h4>
<p>A total ordering needs to be...</p>
<dl>
<dt>Reflexive</dt>
<dd>$x \leq x$</dd>
<dt>Antisymmetric</dt>
<dd>If $x \leq y$ and $y \leq x$ then $x = y$</dd>
<dt>Transitive</dt>
<dd>If $x \leq y$ and $y \leq z$ then $x \leq z$</dd>
<dt style="color: blue">Complete</dt>
<dd style="color: blue">Either $x \leq y$ or $y \leq x$ for any $x, y \in A$.</dd>
</dl>
</section>
<section>
<h4 class="slide_title">Formally...</h4>
<p>For a sort order $(A, \leq)$</p>
<dl>
<dt>Greatest</dt>
<dd>An element $x \in A$ s.t. there is no $y \in A$, where $x \leq y$</dd>
<dt>Least</dt>
<dd>An element $x \in A$ s.t. there is no $y \in A$, where $y \leq x$</dd>
</dl>
<p class="fragment">A <i>partial</i> order may not have a <i>unique</i> greatest/least element</p>
</section>
<section>
<h4 class="slide_title">Formally...</h4>
<p>$\leq$ can be described <b>explicitly, by a set of tuples</b>.</p>
$$\{\; (a, a), (a, b), (a, c), \ldots, (b, b), \ldots, (z, z) \;\}$$
<p class="fragment">If $(x, y)$ is in the set, $x \leq y$</p>
</section>
<section>
<h4 class="slide_title">Formally...</h4>
<p>$\leq$ can be described <b>by a mathematical rule</b>.</p>
$$\{\; (x, y) \;|\; x, y \in \mathbb Z, \exists a \in \mathbb Z_0^{+} : x + a = y \;\}$$
<p class="fragment">$x \leq y$ iff $x, y$ are integers, and there is a non-negative integer $a$ s.t. $x + a = y$</p>
</section>
<section>
<h4 class="slide_title">Formally...</h4>
<p>Multiple orderings can be defined for the same set.</p>
<ul>
<li>RottenTomatoes vs Metacritic vs Box Office Gross.</li>
<li>"Best Movie" first vs "Worst Movie" first.</li>
<li>Rank by number of air ducts crawled through.</li>
</ul>
<p class="fragment">We use a subscripts to separate orderings (e.g., $\leq_1$, $\leq_2$, $\leq_3$)</p>
</section>
<section>
<h4 class="slide_title">Formally...</h4>
<p>We can transform orderings.</p>
<p class="fragment"><b>Reverse:</b> If $x \leq_1 y$, then define $y \leq_r x$</p>
<p class="fragment"><b>Lexical:</b> Given $\leq_1, \leq_2, \leq_3, \ldots$
<ul class="fragment">
<li>If $x \leq_1 y$ then $x \leq_\ell y$</li>
<li>If $x =_1 y$ and $x \leq_2 y$ then $x \leq_\ell y$</li>
<li>If $x =_2 y$ and $x \leq_3 y$ then $x \leq_\ell y$</li>
<li>....</li>
</ul>
</p>
</section>
<section>
<h4 class="slide_title">Examples of Lexical Ordering</h4>
<ul>
<li><b>Names: </b> First letter, then second, then third...</li>
<li><b>Movies: </b> Average of reviews, then number of reviews...</li>
<li><b>Tuples: </b> First field, then second field, then third...</li>
</ul>
</section>
<section>
<h4 class="slide_title">Formally...</h4>
<p>$\leq$ can be described <b>an ordering over a <u>key</u> derived from the element</b>.</p>
<p>$x \leq_{edge} y$ iff $weight(x) \leq weight(y)$</p>
<p>$x \leq_{student} y$ iff $name(x) \leq_{lex} name(y)$</p>
<p class="fragment">We say that the weight (resp., name) is a key.</p>
</section>
<section>
<h4 class="slide_title">Topological Sort</h4>
<p>A <b>Topological Sort</b> $(A, \leq_2)$ is <i>any</i> total order over $x$ that "agrees" with a partial order $(A, \leq_1)$</p>
<p>For any two elements $x, y \in X$:
<ul>
<li>If $x \leq_1 y$ then $x \leq_2 y$</li>
<li>If $y \leq_1 x$ then $y \leq_2 x$</li>
<li>Otherwise, either $x \leq_2 y$ or $y \leq_2 x$</li>
</ul>
</p>
</section>
<section>
<h4 class="slide_title">Topological Sort</h4>
<p>The following are all topological sorts over our partial order example:</p>
<ul>
<li>CSE 115, CSE 116, CSE 191, CSE 241, CSE 250</li>
<li>CSE 241, CSE 115, CSE 116, CSE 191, CSE 250</li>
<li>CSE 115, CSE 191, CSE 116, CSE 250, CSE 241</li>
</ul>
<p class="fragment">(If the partial order is a schedule requirement, each topological sort is a possible schedule)</p>
</section>
<section>
<p>And now, for an ordering-based ADT...</p>
</section>
<section>
<h2>Priority Queues</h2>
</section>
<section>
<h4 class="slide_title">PriorityQueue[A <: Ordering]</h4>
<dl>
<dt>enqueue(v: A): Unit</dt>
<dd>Insert a value $v$ into the priority queue.</dd>
<dt>dequeue: A</dt>
<dd>Remove the greatest element in the priority queue.</dd>
<dt>head: A</dt>
<dd>Peek at the greatest element in the priority queue.</dd>
</dl>
</section>
<section>
<ul style="font-size: 50%; width: 300px; display: inline-block;">
<li class="fragment">enqueue(5)</li>
<li class="fragment">enqueue(9)</li>
<li class="fragment">enqueue(2)</li>
<li class="fragment">enqueue(7)</li>
<li class="fragment">head <span class="fragment">→ 9</span></li>
<li class="fragment">dequeue <span class="fragment">→ 9</span></li>
<li class="fragment">size <span class="fragment">→ 3</span></li>
<li class="fragment">head <span class="fragment">→ 7</span></li>
<li class="fragment">dequeue <span class="fragment">→ 7</span></li>
<li class="fragment">dequeue <span class="fragment">→ 5</span></li>
<li class="fragment">dequeue <span class="fragment">→ 2</span></li>
<li class="fragment">isEmpty <span class="fragment">→ true</span></li>
</ul>
<div style="display: inline-block;" class="fragment">
<p>How do we store these items?</p>
<p class="fragment">5, 9, 2, 7?</p>
<p class="fragment">9, 7, 5, 2?</p>
<p class="fragment">2, 5, 7, 9?</p>
</div>
</section>
<section>
<h4 class="slide_title">Two mentalities...</h4>
<dl>
<dt>Lazy: Keep everything in a mess</dt>
<dd class="fragment">"Selection Sort"</dd>
<dt>Proactive: Keep everything organized</dt>
<dd class="fragment">"Insertion Sort"</dd>
</dl>
</section>
<section>
<h4 class="slide_title">Lazy Priority Queue</h4>
<p><b>Base Data Structure: </b> Linked List</p>
<dl>
<dt>enqueue(t:A)</dt>
<dd class="fragment">Append $t$ to the end of the linked list. <span class="fragment">$O(1)$</span></dd>
<dt>head/dequeue</dt>
<dd class="fragment">Traverse the list to find the largest value. <span class="fragment">$O(n)$</span></dd>
</dl>
</section>
<section>
<h4 class="slide_title">Sort</h4>
<pre><code class="scala">
def pqueueSort[A](items: Seq[A], pqueue: PriorityQueue[A]): Seq[A] =
{
val out = new Array[A](items.size)
for(item <- items){ pqueue.enqueue(item) }
i = out.size - 1
while(!pqueue.isEmpty) { buffer(i) = pqueue.dequeue; i-- }
return out.toSeq
}
</code></pre>
</section>
<section>
<h4 class="slide_title">Selection Sort</h4>
<table style="font-size: 50%">
<tr>
<th></th>
<th>Seq/Buffer</th>
<th>PQueue</th>
</tr>
<tr>
<td>Input</td>
<td>(7, 4, 8, 2, 5, 3, 9)</td>
<td>()</td>
</tr>
<tr class="fragment">
<td>Step 1</td>
<td>(4, 8, 2, 5, 3, 9)</td>
<td>(7)</td>
</tr>
<tr class="fragment">
<td>Step 2</td>
<td>(8, 2, 5, 3, 9)</td>
<td>(7, 4)</td>
</tr>
<tr class="fragment">
<td colspan=3>፧ ፧ ፧</td>
</tr>
<tr class="fragment">
<td>Step N</td>
<td>[_, _, _, _, _, _, _]</td>
<td>(7, 4, 8, 2, 5, 3, 9)</td>
</tr>
<tr class="fragment">
<td>Step N+1</td>
<td>[_, _, _, _, _, _, 9]</td>
<td>(7, 4, 8, 2, 5, 3)</td>
</tr>
<tr class="fragment">
<td>Step N+2</td>
<td>[_, _, _, _, _, 8, 9]</td>
<td>(7, 4, 2, 5, 3)</td>
</tr>
<tr class="fragment">
<td>Step N+3</td>
<td>[_, _, _, _, 7, 8, 9]</td>
<td>(4, 2, 5, 3)</td>
</tr>
<tr class="fragment">
<td>Step N+4</td>
<td>[_, _, _, 5, 7, 8, 9]</td>
<td>(4, 2, 3)</td>
</tr>
<tr class="fragment">
<td>Step N+5</td>
<td>[_, _, 4, 5, 7, 8, 9]</td>
<td>(2, 3)</td>
</tr>
<tr class="fragment">
<td>Step N+6</td>
<td>[_, 3, 4, 5, 7, 8, 9]</td>
<td>(2)</td>
</tr>
<tr class="fragment">
<td>Step 2N</td>
<td>[2, 3, 4, 5, 7, 8, 9]</td>
<td>()</td>
</table>
</section>
<section>
<h4 class="slide_title">Selection Sort</h4>
<pre><code class="scala">
def pqueueSort[A](items: Seq[A], pqueue: PriorityQueue[A]): Seq[A] =
{
val out = new Array[A](items.size)
for(item <- items){ pqueue.enqueue(item) }
i = out.size - 1
while(!pqueue.isEmpty) { buffer(i) = pqueue.dequeue; i-- }
return out.toSeq
}
</code></pre>
<p>What's the complexity?</p>
</section>
<section>
<h4 class="slide_title">Proactive Priority Queue</h4>
<p><b>Base Data Structure: </b> Linked List</p>
<dl>
<dt>enqueue(t:A)</dt>
<dd class="fragment">Find $t$'s position in reverse sorted order. <span class="fragment">$O(n)$</span></dd>
<dt>head/dequeue</dt>
<dd class="fragment">Refer to the head item in the list. <span class="fragment">$O(1)$</span></dd>
</dl>
</section>
<section>
</section><section>
<h4 class="slide_title">Insertion Sort</h4>
<table style="font-size: 50%">
<tr>
<th></th>
<th>Seq/Buffer</th>
<th>PQueue</th>
</tr>
<tr>
<td>Input</td>
<td>(7, 4, 8, 2, 5, 3, 9)</td>
<td>()</td>
</tr>
<tr class="fragment">
<td>Step 1</td>
<td>(4, 8, 2, 5, 3, 9)</td>
<td>(7)</td>
</tr>
<tr class="fragment">
<td>Step 2</td>
<td>(8, 2, 5, 3, 9)</td>
<td>(7, 4)</td>
</tr>
<tr class="fragment">
<td>Step 3</td>
<td>(2, 5, 3, 9)</td>
<td>(8, 7, 4)</td>
</tr>
<tr class="fragment">
<td>Step 4</td>
<td>(5, 3, 9)</td>
<td>(8, 7, 4, 2)</td>
</tr>
<tr class="fragment">
<td>Step 5</td>
<td>(3, 9)</td>
<td>(8, 7, 5, 4, 2)</td>
</tr>
<tr class="fragment">
<td>Step 6</td>
<td>(9)</td>
<td>(8, 7, 5, 4, 3, 2)</td>
</tr>
<tr class="fragment">
<td>Step N</td>
<td>[_, _, _, _, _, _, _]</td>
<td>(9, 8, 7, 5, 4, 3, 2)</td>
</tr>
<tr class="fragment">
<td>Step N+1</td>
<td>[_, _, _, _, _, _, 9]</td>
<td>(8, 7, 5, 4, 3, 2)</td>
</tr>
<tr class="fragment">
<td colspan=3>፧ ፧ ፧</td>
</tr>
<tr class="fragment">
<td>Step 2N</td>
<td>[2, 3, 4, 5, 7, 8, 9]</td>
<td>()</td>
</tr>
</table>
</section>
<section>
<h4 class="slide_title">Insertion Sort</h4>
<pre><code class="scala">
def pqueueSort[A](items: Seq[A], pqueue: PriorityQueue[A]): Seq[A] =
{
val out = new Array[A](items.size)
for(item <- items){ pqueue.enqueue(item) }
i = out.size - 1
while(!pqueue.isEmpty) { buffer(i) = pqueue.dequeue; i-- }
return out.toSeq
}
</code></pre>
<p>What's the complexity?</p>
</section>
<section>
<h4 class="slide_title">Priority Queues</h4>
<table>
<tr>
<th>Operation</th>
<th>Lazy</th>
<th>Proactive</th>
</tr>
<tr>
<td>enqueue</td>
<td>$O(1)$</td>
<td>$O(n)$</td>
</tr>
<tr>
<td>dequeue</td>
<td>$O(n)$</td>
<td>$O(1)$</td>
</tr>
<tr>
<td>head</td>
<td>$O(n)$</td>
<td>$O(1)$</td>
</tr>
</table>
<p class="fragment">Can we do better?</p>
</section>

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 361 KiB

View File

@ -0,0 +1,245 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="77.396881mm"
height="77.396881mm"
viewBox="0 0 77.396881 77.396881"
version="1.1"
id="svg5"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
sodipodi:docname="heap.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.5091667"
inkscape:cx="133.8487"
inkscape:cy="180.89452"
inkscape:window-width="1803"
inkscape:window-height="1133"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-59.763615,-24.860731)">
<path
style="fill:#87aade;stroke:#0b1728;stroke-width:1.6;stroke-dasharray:none"
d="M 103.23119,31.604402 87.89159,52.552787"
id="path1920" />
<path
style="fill:#87aade;stroke:#0b1728;stroke-width:1.6;stroke-dasharray:none"
d="M 103.76659,31.604402 119.1062,52.552787"
id="path1922" />
<path
style="fill:#87aade;stroke:#0b1728;stroke-width:1.6;stroke-dasharray:none"
d="m 119.11243,52.77107 11.10628,20.948385"
id="path1924"
sodipodi:nodetypes="cc" />
<path
style="fill:#87aade;stroke:#0b1728;stroke-width:1.6;stroke-dasharray:none"
d="m 119.11243,52.77107 -4.76872,20.948385"
id="path2022"
sodipodi:nodetypes="cc" />
<path
style="fill:#87aade;stroke:#0b1728;stroke-width:1.6;stroke-dasharray:none"
d="M 88.335073,52.77107 77.228799,73.719455"
id="path2024"
sodipodi:nodetypes="cc" />
<path
style="fill:#87aade;stroke:#0b1728;stroke-width:1.6;stroke-dasharray:none"
d="M 88.335073,52.77107 93.10379,73.719455"
id="path2026"
sodipodi:nodetypes="cc" />
<path
style="fill:#87aade;stroke:#0b1728;stroke-width:1.6;stroke-dasharray:none"
d="M 77.751739,73.937738 66.645465,94.886123"
id="path2028"
sodipodi:nodetypes="cc" />
<g
id="g1758"
transform="translate(79.375004)">
<circle
style="fill:#87aade;stroke:#0b1728;stroke-width:1.6;stroke-dasharray:none"
id="path290"
cx="24.378719"
cy="31.80917"
r="6.1484389" />
<text
xml:space="preserve"
style="font-size:4.9389px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0"
x="24.378719"
y="33.609409"
id="text236"><tspan
sodipodi:role="line"
id="tspan234"
style="font-weight:bold;stroke-width:0"
x="24.378719"
y="33.609409">A</tspan></text>
</g>
<g
id="g1766"
transform="translate(95.250005,21.166667)">
<circle
style="fill:#87aade;stroke:#0b1728;stroke-width:1.6;stroke-dasharray:none"
id="circle1760"
cx="24.378719"
cy="31.80917"
r="6.1484389" />
<text
xml:space="preserve"
style="font-size:4.9389px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0"
x="24.378719"
y="33.609409"
id="text1764"><tspan
sodipodi:role="line"
id="tspan1762"
style="font-weight:bold;stroke-width:0"
x="24.378719"
y="33.609409">C</tspan></text>
</g>
<g
id="g1774"
transform="translate(63.500003,21.166667)">
<circle
style="fill:#87aade;stroke:#0b1728;stroke-width:1.6;stroke-dasharray:none"
id="circle1768"
cx="24.378719"
cy="31.80917"
r="6.1484389" />
<text
xml:space="preserve"
style="font-size:4.9389px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0"
x="24.378719"
y="33.609409"
id="text1772"><tspan
sodipodi:role="line"
id="tspan1770"
style="font-weight:bold;stroke-width:0"
x="24.378719"
y="33.609409">B</tspan></text>
</g>
<g
id="g1782"
transform="translate(52.916669,42.333335)">
<circle
style="fill:#87aade;stroke:#0b1728;stroke-width:1.6;stroke-dasharray:none"
id="circle1776"
cx="24.378719"
cy="31.80917"
r="6.1484389" />
<text
xml:space="preserve"
style="font-size:4.9389px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0"
x="24.378719"
y="33.609409"
id="text1780"><tspan
sodipodi:role="line"
id="tspan1778"
style="font-weight:bold;stroke-width:0"
x="24.378719"
y="33.609409">D</tspan></text>
</g>
<g
id="g1790"
transform="translate(68.79167,42.333335)">
<circle
style="fill:#87aade;stroke:#0b1728;stroke-width:1.6;stroke-dasharray:none"
id="circle1784"
cx="24.378719"
cy="31.80917"
r="6.1484389" />
<text
xml:space="preserve"
style="font-size:4.9389px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0"
x="24.378719"
y="33.609409"
id="text1788"><tspan
sodipodi:role="line"
id="tspan1786"
style="font-weight:bold;stroke-width:0"
x="24.378719"
y="33.609409">E</tspan></text>
</g>
<g
id="g1798"
transform="translate(89.958338,42.333335)">
<circle
style="fill:#87aade;stroke:#0b1728;stroke-width:1.6;stroke-dasharray:none"
id="circle1792"
cx="24.378719"
cy="31.80917"
r="6.1484389" />
<text
xml:space="preserve"
style="font-size:4.9389px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0"
x="24.378719"
y="33.609409"
id="text1796"><tspan
sodipodi:role="line"
id="tspan1794"
style="font-weight:bold;stroke-width:0"
x="24.378719"
y="33.609409">F</tspan></text>
</g>
<g
id="g1806"
transform="translate(105.83334,42.333335)">
<circle
style="fill:#87aade;stroke:#0b1728;stroke-width:1.6;stroke-dasharray:none"
id="circle1800"
cx="24.378719"
cy="31.80917"
r="6.1484389" />
<text
xml:space="preserve"
style="font-size:4.9389px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0"
x="24.378719"
y="33.609409"
id="text1804"><tspan
sodipodi:role="line"
id="tspan1802"
style="font-weight:bold;stroke-width:0"
x="24.378719"
y="33.609409">G</tspan></text>
</g>
<g
id="g1864"
transform="translate(42.333335,63.500003)">
<circle
style="fill:#87aade;stroke:#0b1728;stroke-width:1.6;stroke-dasharray:none"
id="circle1858"
cx="24.378719"
cy="31.80917"
r="6.1484389" />
<text
xml:space="preserve"
style="font-size:4.9389px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke:#000000;stroke-width:0"
x="24.378719"
y="33.609409"
id="text1862"><tspan
sodipodi:role="line"
id="tspan1860"
style="font-weight:bold;stroke-width:0"
x="24.378719"
y="33.609409">H</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@ -0,0 +1,148 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="164.84744mm"
height="82.487465mm"
viewBox="0 0 164.84744 82.487465"
version="1.1"
id="svg1441"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
sodipodi:docname="partial-order.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1443"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1"
inkscape:cx="291"
inkscape:cy="94"
inkscape:window-width="1803"
inkscape:window-height="1133"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1438" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(2.485278,-30.745235)">
<text
xml:space="preserve"
style="font-size:9.87777px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;fill:#d40000;stroke-width:0.7"
x="47.322861"
y="38.076393"
id="text1564"><tspan
sodipodi:role="line"
id="tspan1562"
style="fill:#000000;stroke-width:0.7"
x="47.322861"
y="38.076393">CSE 115</tspan></text>
<text
xml:space="preserve"
style="font-size:9.87777px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.7"
x="17.660936"
y="76.374664"
id="text1670"><tspan
sodipodi:role="line"
id="tspan1668"
style="stroke-width:0.7"
x="17.660936"
y="76.374664">CSE 116</tspan></text>
<text
xml:space="preserve"
style="font-size:9.87777px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.7"
x="77.03302"
y="76.374664"
id="text1674"><tspan
sodipodi:role="line"
id="tspan1672"
style="stroke-width:0.7"
x="77.03302"
y="76.374664">CSE 191</tspan></text>
<text
xml:space="preserve"
style="font-size:9.87777px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.7"
x="17.677816"
y="113.09283"
id="text1678"><tspan
sodipodi:role="line"
id="tspan1676"
style="stroke-width:0.7"
x="17.677816"
y="113.09283">CSE 250</tspan></text>
<path
style="fill:#000000;stroke:#000000;stroke-width:0.7"
d="M 47.361451,42.179337 23.470089,65.229514"
id="path1756"
sodipodi:nodetypes="cc" />
<path
style="fill:#000000;stroke:#000000;stroke-width:0.7"
d="M 49.928423,42.179337 73.819785,65.229514"
id="path1758"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.7"
d="M 18.755444,78.962622 V 102.47937"
id="path1760"
sodipodi:nodetypes="cc" />
<path
style="fill:#000000;stroke:#000000;stroke-width:0.7"
d="M 68.999406,78.962622 28.267212,102.47937"
id="path1762"
sodipodi:nodetypes="cc" />
<path
style="fill:#000000;stroke:#ff0000;stroke-width:2;stroke-dasharray:none"
d="M 41.097592,72.384037 H 53.939184"
id="path1892"
class="fragment" />
<g
id="g3165"
class="fragment">
<text
xml:space="preserve"
style="font-size:9.87777px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;fill:#d40000;stroke-width:0.7"
x="142.57286"
y="38.076393"
id="text2367"><tspan
sodipodi:role="line"
style="fill:#000000;stroke-width:0.7"
x="142.57286"
y="38.076393"
id="tspan3147">CSE 241</tspan></text>
<path
style="fill:none;stroke:#ff0000;stroke-width:2;stroke-dasharray:none"
d="M 18.755444,67.092369 V 56.509036 H 141.69714 l -0.10424,-15.875"
id="path3151"
sodipodi:nodetypes="cccc" />
<path
style="fill:#000000;stroke:#ff0000;stroke-width:2;stroke-dasharray:none"
d="M 48.647517,56.509036 V 36.929869"
id="path3153"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#ff0000;stroke-width:2;stroke-dasharray:none"
d="M 77.492948,67.092369 V 56.509036"
id="path3155"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#ff0000;stroke-width:2;stroke-dasharray:none"
d="M 24.732699,103.58937 V 95.651867 H 141.69714 V 56.509036"
id="path3157"
sodipodi:nodetypes="cccc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB