From 6051a4a481d061d16976622adc000337882d4e9f Mon Sep 17 00:00:00 2001 From: tomit4 Date: Sun, 24 May 2026 16:37:25 -0700 Subject: [PATCH] :construction: Fin chapter 1 --- chapter_1/1_3_2_6.png | Bin 10431 -> 10531 bytes chapter_1/examples.md | 127 +++++++++++++++++++++++++++++++++++++ chapter_1/notes.md | 43 +++++++++++++ chapter_1/test_yourself.md | 62 ++++++++++++++++++ 4 files changed, 232 insertions(+) diff --git a/chapter_1/1_3_2_6.png b/chapter_1/1_3_2_6.png index c56eded066abc8d9787ac98fc79c29161a2cec08..d9ee719ac5a3d857068b1683e45ad8f866b23b98 100644 GIT binary patch literal 10531 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 K5>?{H!T$r5qdYzU literal 10431 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

18Dk)Nm4fB@BHt^Sup-_r&UXcRIJ{5A(X- z=fYqjc4OZyA+CmoDK)jdy*)4(+|bYfcO+KZ+{n3YznT-uy*a5czWlm8x@|H+1c4apkZfcr>D0YN5pQ2-N5(qYYnw0^PL;Q zNVKOY!#2ZzfA-TlLKmy>8NqT1^}s9FB8OJ`XKO+i%TbuOYpTE_0Um5+6zpDE zQwWH-C!mwTmdJVV6XlXxph<)K7VEV~D(!Y44xT?{T?Ls$`3x_1#>i!urvj}Qx=s4r z^8(JY@gje=OK_R@Y~igS*H0m-9xDS8=^88d}92iiB!!q!iRl$B|vgd($qH;Sux8>|rMA(J$ue~?H2J3Zy;4UZrtC2X{ z>yrWPwR!1(FKK3`&-bc&u}#|^LI43@+-aMDV=e468_d8S9I|^vNgi5=o)jZX0}P`~ zR0I4YFgtKk%Sz$+dSR1L5zL0IGLkY#IxOTzM z-#&N7y<7p!6VG$}>^|T4A|uRb`OA3P{a$CFl7F+4s{PZk}cxnks$2|^JY~@Qotbr7^Z649pstzt7#2V;}H&N zBdron>+?KSgIi{!@pcXU1Tt7oLs)1bKt?L`+VQRJSN2Lr(BJ7iAq2n&C03Ip2d#GA z@s3;^K&2CCeA>TIM@S*bAy#^?-lsQO_D{-(SiDf;G3ftKk_AKDm)z`oTllyOKamJf Ml2ezhm9~uhA2Pt9CIA2c diff --git a/chapter_1/examples.md b/chapter_1/examples.md index f85c3c5..0be1e02 100644 --- a/chapter_1/examples.md +++ b/chapter_1/examples.md @@ -715,3 +715,130 @@ Does $f = g$? Yes. Because the absolute value of any real number equals the square root of its square, $|x| = \sqrt{x^2}$ for all $x \in \mathbb{R}$. Hence $f = g$. + +--- + +**Example 1.4.1 Terminology** + +Consider the following graph: + +![image 1_3_2_6](./1_3_2_6.png) + +a. Write the vertex set and edge set, and give a table showing the edge-endpoint +function. + +b. Find all edges that are incident on $v_1$, all vertices that are adjacent to +$v_1$, all edges that are adjacent to $e_1$, all loops, all parallel edges, all +vertices that are adjacent to themselves, and all isolated vertices. + +**Solution** + +a. + +$$ \text{vertex set } = \{v_1, v_2, v_3, v_4, v_5, v_6\} $$ + +$$ \text{edge set } = \{e_1, e_2, e_3, e_4, e_5, e_6, e_7\} $$ + +| Edge | Endpoints | +| ----- | -------------- | +| $e_1$ | $\{v_1, v_2\}$ | +| $e_2$ | $\{v_1, v_3\}$ | +| $e_3$ | $\{v_1, v_3\}$ | +| $e_4$ | $\{v_2, v_3\}$ | +| $e_5$ | $\{v_5, v_6\}$ | +| $e_6$ | $\{v_5\}$ | +| $e_7$ | $\{v_6\}$ | + +b. + +$e_1$, $e_2$, and $e_3$ are incident on $v_1$. + +$v_1$ and $v_3$ are adjacent to $v_1$. + +$e_2$, $e_3$, and $e_4$ are adjacent to $e_1$. + +$e_6$ and $e_7$ are loops. + +$e_2$ and $e_3$ are parallel. + +$v_5$ and $v_6$ are adjacent to themselves. + +$v_4$ is an isolated vertex. + +--- + +**Example 1.4.2 Drawing More Than One Picture for a Graph**$adjacent + +Page 49 + +Consider the graph specified as follows: + +$$ \text{vertex set } = \{v_1, v_2, v_3, v_4\} $$ + +$$ \text{edge set } = \{e_1, e_2, e_3, e_4\} $$ + +edge-endpoint function: + +| Edge | Endpoints | +| ----- | -------------- | +| $e_1$ | $\{v_1, v_3\}$ | +| $e_2$ | $\{v_2, v_4\}$ | +| $e_3$ | $\{v_2, v_4\}$ | +| $e_4$ | $\{v_3\}$ | + +Both drawings (a) and (b) shown below are pictorial representations of this +graph (see Page 50). + +--- + +**Example 1.4.3 Labeling Drawings to Show They Represent the Same Graph** + +Page 50 + +Consider the two drawings shown in Figure 1.4.1. Label vertices and edges in +such a way that both drawings represent the same graph. + +(see page 50) + +**Solution** + +Imagine putting one end of a piece of string at the top vertex of Figure +1.4.1(a) (call this vertex $v_1$), then laying the string to the next adjacent +vertex on the lower right (call this vertex $v_2$), then laying it to the next +adjacent vertex on the upper left ($v_3$), and so forth, returning finally to +the top vertex $v_1$. Call the first edge $e_1$, the second edge $e_2$, and so +forth, as shown below. + +(see page 50) + +Now imagine picking up the piece of string, together with its labels, and +repositioning it as follows: + +(see page 50) + +This is the same as Figure 1.4.1(b), so both drawings represent the graph with +vertex set $\{v_1, v_2, v_3, v_4, v_5\}$, edge set +$\{e_1, e_2, e_3, e_4, e_5\}$, and edge-endpoint function as follows: + +| Edge | Endpoints | +| ----- | -------------- | +| $e_1$ | $\{v_1, v_2\}$ | +| $e_2$ | $\{v_2, v_3\}$ | +| $e_3$ | $\{v_3, v_4\}$ | +| $e_4$ | $\{v_4, v_5\}$ | +| $e_5$ | $\{v_5, v_1\}$ | + +--- + +**Example 1.4.4 Using a Graph to Represent a Network** + +Page 51 + +Telephone, electric power, gas pipeline, and air transport systems can all be +represented by graphs, as can computer networks - from small local area networks +to the global Internet system that connects millions of computers worldwide. +Questions that arise in the design of such systems involve choosing connecting +edges to minimize cost, optimize a certain type of service, and so forth. A +typical network, called a _hub-ad-spoke model_, is shown below. + +(see page 51) diff --git a/chapter_1/notes.md b/chapter_1/notes.md index 54029e8..328e350 100644 --- a/chapter_1/notes.md +++ b/chapter_1/notes.md @@ -195,3 +195,46 @@ Page 42 If $A$ and $B$ are sets and $F$ is a function from $A$ to $B$, then given any element $x$ in $A$, the unique element in $B$ that is related to $x$ by $F$ is denoted $F(x)$, which is read **"$F$ of $x$."** + +--- + +Page 48 + +**Definition** + +A **graph** $G$ consists of two finite sets: a nonempty set $V(G)$ of +**vertices** and a set $E(G)$ of **edges**, where each edge is associated with a +set consisting of either one or two vertices called its **endpoints**. The +correspondence from edges to endpoints is called the **edge-endpoint function**. + +An edge with just one endpoint is called a **loop**, and two or more distinct +edges with the same set of endpoints are said to be **parallel**. An edge is +said to **connect** its endpoints; two vertices that are connected by an edge +are called **adjacent**; and a vertex that is an endpoint of a loop is said to +be **adjacent to itself**. + +An edge is said to be **incident on** each of its endpoints, and two edges +incident on the same endpoint are called **adjacent**. A vertex on which no +edges are incident is called **isolated**. + +--- + +Page 52 + +**Definition** + +A **directed graph**, or **digraph**, consists of two finite sets: a nonempty +set $V(G)$ of vertices and a set $D(G)$ of directed edges, where each is +associated with an ordered pair of vertices called its **endpoints**. If edge +$e$ is associated with the pair $(v, w)$ of vertices, then $e$ is said to be the +**(directed) edge** from $v$ to $w$. + +--- + +Page 54 + +**Definition** + +Let $G$ be a graph and $v$ a vertex of $G$. The **degree of $v$**, denoted +**$deg(v)$**, equals the number of edges that are incident on $v$, with an edge +that is a loop counted twice. diff --git a/chapter_1/test_yourself.md b/chapter_1/test_yourself.md index 70fe649..b044fbd 100644 --- a/chapter_1/test_yourself.md +++ b/chapter_1/test_yourself.md @@ -117,3 +117,65 @@ $(x, y) \in F$ and $(x, z) \in F$; $y = z$ **Solution** a unique element of $B$ that is related to $x$ by $F$. + +--- + +**Test Yourself** + +Page 57 + +1. A graph consists of two finite sets: _______ and _______, where each edge is + associated with a set consisting of _______. + +**Solution** + +a finite; nonempty set of vertices; a finite set of edges. + +2. A loop in a graph is _______. + +**Solution** + +An edge that has a single endpoint. + +3. Two distinct edges in a graph are parallel if, and only if, _______. + +**Solution** + +They share the same set of endpoints. + +4. Two vertices are called adjacent if, and only if, _______. + +**Solution** + +They are connected by an edge. + +5. An edge is incident on _______. + +**Solution** + +Each of its endpoints. + +6. Two edges incident on the same endpoint are _______. + +**Solution** + +adjacent + +7. Two edges incident on the same endpoint are _______. + +**Solution** + +isolated + +8. In a directed graph, each edge is associated with _______. + +**Solution** + +an ordered pair of vertices called its endpoints + +9. The degree of a vertex in a graph is _______. + +**Solution** + +the number of edges that are incident on the vertex, with an edge that is a loop +counted twice.