MATH20902: Discrete Maths, Solutions to Problem Set 6

Similar documents
Approximation Algorithms

CSE 326, Data Structures. Sample Final Exam. Problem Max Points Score 1 14 (2x7) 2 18 (3x6) Total 92.

POLYNOMIAL FUNCTIONS

1 Solving LPs: The Simplex Algorithm of George Dantzig

ALGEBRA. sequence, term, nth term, consecutive, rule, relationship, generate, predict, continue increase, decrease finite, infinite

6.3 Conditional Probability and Independence

Analysis of Algorithms, I

How To Understand And Solve Algebraic Equations

COMP 250 Fall 2012 lecture 2 binary representations Sept. 11, 2012


The Graphical Method: An Example

Algebra 2 Chapter 1 Vocabulary. identity - A statement that equates two equivalent expressions.

Chapter Load Balancing. Approximation Algorithms. Load Balancing. Load Balancing on 2 Machines. Load Balancing: Greedy Scheduling

A Review And Evaluations Of Shortest Path Algorithms

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. !-approximation algorithm.

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. #-approximation algorithm.

Scheduling Shop Scheduling. Tim Nieberg

Computational Geometry Lab: FEM BASIS FUNCTIONS FOR A TETRAHEDRON

Data Structures. Chapter 8

Warshall s Algorithm: Transitive Closure

Unit 7 Quadratic Relations of the Form y = ax 2 + bx + c

1 Review of Least Squares Solutions to Overdetermined Systems

10.1. Solving Quadratic Equations. Investigation: Rocket Science CONDENSED

Polynomial and Rational Functions

2. (a) Explain the strassen s matrix multiplication. (b) Write deletion algorithm, of Binary search tree. [8+8]

Arithmetic and Algebra of Matrices

Data Structures and Algorithms Written Examination

Linear Programming. Solving LP Models Using MS Excel, 18

Linear Programming. March 14, 2014

Solving Quadratic Equations

Examples of Tasks from CCSS Edition Course 3, Unit 5

Lecture 15 An Arithmetic Circuit Lowerbound and Flows in Graphs

Graph Theory Problems and Solutions

Creating, Solving, and Graphing Systems of Linear Equations and Linear Inequalities

5.1 Bipartite Matching

SYSTEMS OF EQUATIONS AND MATRICES WITH THE TI-89. by Joseph Collison

Problem Set 7 Solutions

Lecture 3: Finding integer solutions to systems of linear equations

Handout #Ch7 San Skulrattanakulchai Gustavus Adolphus College Dec 6, Chapter 7: Digraphs

Why? A central concept in Computer Science. Algorithms are ubiquitous.

IE 680 Special Topics in Production Systems: Networks, Routing and Logistics*

Session 7 Bivariate Data and Analysis

Formal Languages and Automata Theory - Regular Expressions and Finite Automata -

This unit will lay the groundwork for later units where the students will extend this knowledge to quadratic and exponential functions.

CMPSCI611: Approximating MAX-CUT Lecture 20

MATH2210 Notebook 1 Fall Semester 2016/ MATH2210 Notebook Solving Systems of Linear Equations... 3

Kenken For Teachers. Tom Davis June 27, Abstract

5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.

Chapter 27: Taxation. 27.1: Introduction. 27.2: The Two Prices with a Tax. 27.2: The Pre-Tax Position

MATH10212 Linear Algebra. Systems of Linear Equations. Definition. An n-dimensional vector is a row or a column of n numbers (or letters): a 1.

Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay

Row Echelon Form and Reduced Row Echelon Form

Session 7 Fractions and Decimals

Dynamic Programming. Lecture Overview Introduction

MATH Fundamental Mathematics IV

Just the Factors, Ma am

Microeconomics Sept. 16, 2010 NOTES ON CALCULUS AND UTILITY FUNCTIONS

Zeros of a Polynomial Function

LINEAR INEQUALITIES. Mathematics is the art of saying many things in many different ways. MAXWELL

6 EXTENDING ALGEBRA. 6.0 Introduction. 6.1 The cubic equation. Objectives

Equations, Inequalities & Partial Fractions

Project and Production Management Prof. Arun Kanda Department of Mechanical Engineering Indian Institute of Technology, Delhi

Triangulation by Ear Clipping

1 if 1 x 0 1 if 0 x 1

Network File Storage with Graceful Performance Degradation

INTERSECTION MATH And more! James Tanton

Arrangements And Duality

Lecture 3. Linear Programming. 3B1B Optimization Michaelmas 2015 A. Zisserman. Extreme solutions. Simplex method. Interior point method

Solutions to Homework 10

2.4 Real Zeros of Polynomial Functions

Math 55: Discrete Mathematics

Polynomial Degree and Lower Bounds in Quantum Complexity: Collision and Element Distinctness with Small Range

So far we have investigated combinational logic for which the output of the logic devices/circuits depends only on the present state of the inputs.

MATH 10550, EXAM 2 SOLUTIONS. x 2 + 2xy y 2 + x = 2

Chapter 15: Dynamic Programming

Regular Languages and Finite Automata

Unit 1 Equations, Inequalities, Functions

Dynamic Programming 11.1 AN ELEMENTARY EXAMPLE

Study Guide 2 Solutions MATH 111

8 Divisibility and prime numbers

The number of marks is given in brackets [ ] at the end of each question or part question. The total number of marks for this paper is 72.

Scheduling. Getting Started. Scheduling 79

If A is divided by B the result is 2/3. If B is divided by C the result is 4/7. What is the result if A is divided by C?

Numeracy and mathematics Experiences and outcomes

Numerical Analysis Lecture Notes

Lecture L3 - Vectors, Matrices and Coordinate Transformations

Grade 6 Mathematics Performance Level Descriptors

Solving Rational Equations

Regions in a circle. 7 points 57 regions

Circuits 1 M H Miller

Solving Systems of Linear Equations Using Matrices

Measurement with Ratios

Review of Fundamental Mathematics

136 CHAPTER 4. INDUCTION, GRAPHS AND TREES

Network (Tree) Topology Inference Based on Prüfer Sequence

Minimum cost maximum flow, Minimum cost circulation, Cost/Capacity scaling

The Trip Scheduling Problem

Application. Outline. 3-1 Polynomial Functions 3-2 Finding Rational Zeros of. Polynomial. 3-3 Approximating Real Zeros of.

Social Media Mining. Graph Essentials

PES Institute of Technology-BSC QUESTION BANK

Transcription:

MATH20902: Discrete Maths, Solutions to Problem Set 6 These solutions, as well as the corresponding problems, are available at http://bit.ly/discretemancmaths. () (About metric spaces) Jungnickel points out that any finite metric space (finite set X, metric d X : X X R + 0 ) can be realized as a graph, but the construction is pretty dull: it has one vertex for each point in X and is a complete graph with edge weights given by w(a, b) d X (a, b). (a) To prove that d(a, b) is a metric we need to establish the three properties. As usually, say that the graph G has vertex set V and edge set E. The first property is clear: as d(a, b) is a sum of terms of the form (e j ) and, as w(e) > 0 for all e E, the only way that d(a, b) can be zero is if a b, when we say d(a, b) 0 by convention. As for symmetry, this follows from the undirected nature of the graph, for if (e,..., e n ) is a shortest path from a to b, then (e n, e n,..., e ) must be a shortest path from b to a and, as it involves all the same edges, it must be true that d(b, a) d(a, b). Finally, the triangle equality follows because we define d(a, b) to be a minimum over all possible paths. To see why, consider three vertices a, b and c. If (e,..., e n ) is a shortest path from a to be and (e,..., e n ) is a shortest path from b to c, then we can concatenate them to get a path (e,..., e n, e,..., e n ) from a to c, though it need not be a shortest path. All the same, its total weight provides an upper bound on d(a, c) and so we have: ( ) ( ) d(a, c) w(e j ) + w(e k) j n k n d(a, b) + d(b, c) (b) The function d(a, b) is not a metric as it may violate symmetry: in the graph below, where all edges have weight w(e), there is exactly one directed path from a to b and another from b to a, but they do not have the same length: d(a, b), but d(b, a) 2. a b c (c) If G has more than one connected component then d(a, b) makes each connected component, considered on its own, into a metric space, but fails to be a metric on the whole graph as d(a, b) is undefined when a and b lie in distinct components. One can repair things by modifying the definition d(a, b) from

the problem to that used in lecture. If you find the use of here distasteful, ask yourself whether it could be replaced ( by a) sufficiently large, but finite number: one candidate might be 2 E max w(e). e E (2) The graph in question is below, with the distinguished starting vertex, r, shown in orange. Once the graph is drawn, it s easy to see that there are two shortest paths w t s u p v z r q y x Figure A2.: A representation of the graph that was defined, in the problem statement, in terms of adjacency lists. from r to z, both of length 5. If we describe them as ordered lists of vertices they are (r, u, p, x, v, z) and (r, u, p, t, v, z). The main work in the problem is to use Breadth First Search (BFS) to find the distances d(r,.) from vertex r to each of the others and so, first, I repeat the algorithm on the next page and give a almost tediously thorough summary of the computation in Table A2. on the page after that. Recall that BFS makes use of a queue, an ordered set on which one uses an operation called push to add an element at the rightmost end (last position in the ordering), and an operation called pop to remove elements from the left (first position in the ordering). Thus if Q {a, b} the two operations act as follows pop(q) a and, afterward, Q {b} push(c, Q) {a, b, c} 2

Breadth First Search (BFS) Given a graph G with vertex set V and adjacency lists A v for v V, take a distinguished starting vertex v 0 and compute the distances d(v 0, t) for all t V. Here d(v 0, t) is defined as in Problem (). () Initialize things d(v 0, v 0 ) 0 d(v 0, v) for v v 0 Q {v 0 } (2) While Q is not empty { () w pop Q () For each vertex v A w { (5) If( d(v 0, v) ){ (6) d(v 0, v) d(v 0, w) + (7) push(v, Q) (8) } End of If {... } (9) } End of For {... } (0) } End of While {... }

d(r,.) {}}{ Step w A w v Q p q r s t u v w x y z 5 r {s, u, w} s {} 0 5 u {s} 0 5 w {s, u} 0 0 {s, u, w} 0 5 s {r, w} r {u, w} 0 5 w {u, w} 0 0 {u, w} 0 5 u {p, r, w} p {w} 0 5 r {w, p} 2 0 5 w {w, p} 2 0 0 {w, p} 2 0 5 w {u, r, s} u {p} 2 0 5 r {p} 2 0 5 s {p} 2 0 0 {p} 2 0 5 p {t, u, x} t {} 2 0 5 u {t} 2 0 5 x {t} 2 0 0 {t, x} 2 0 5 t {p, v} p {x} 2 0 5 v {x} 2 0 0 {x, v} 2 0 5 x {p, v} p {v} 2 0 5 v {v} 2 0 0 {v} 2 0 5 v {t, x, z} t {} 2 0 5 x {} 2 0 5 z {} 2 0 0 {z} 2 0 5 5 z {v} v {} 2 0 5 0 {} 2 0 5 Table A2.: The table above shows intermediate results produced when applying BFS to the graph illustrated in Figure A2.. Horizontal lines divide results from successive passes through the While loop that begins at step 2 while the rows list w, A w, v, Q and those values d(r, v) that are available at two key points in the algorithm: step 5, just before we consider a vertex v A w and at step 0, just after the loop over A w has finished.

() (after Jungnickel s Example..2) Given that the probability of getting caught on a given edge e is p(e), the probability of not getting caught is ( p(e)) and so, using the assumption of independence, the probability of not getting caught on a whole journey that traverses the edges (e, e 2,..., e n ) is n P ( p(e j )) Now consider the log of this quantity: ( n ) log (P ) log ( p(e j )) j j n log( p(e j )) (.) j Certainly it would be just as good to maximize this, as log(p ) is a monotonically increasing function of P. But one should bear in mind that log(p ) is, necessarily, a negative number: 0 ( p(e)) and so log( p(e)) 0 for any edge e. Thus log(p ) log(p ) n log( p(e j )) j and the problem of maximizing log(p ) is the same as the problem of minimizing log(p ). And that means that we can minimize (.) by solving a shortest-path problem with edge weights given by w(e) log( p(e)). All these weights are obviously positive, so the graph can t contain any cycles of negative length and the shortest path problem is well-posed. () (after Jungnickel s Exercise 2.6.9) The numbering on the vertices below has the desired property: 2 5 7 6 Indeed, one can always find a topological sorting for an acyclic directed graph. 5

(5) (A scheduling problem) This problem came from the first chapter of J. A. Dossey, A. D. Otto, L. E. Spence and C. Vanden Eynden (2006), Discrete Mathematics, 5th edition, Addison Wesley. ISBN: 020559. (a) The main work in solving this problem is to draw a suitable graph. Below is one version, in which the vertices corresponding to tasks are reddish while the two special vertices S for the start and Z for the finish are a pale yellow. The numbers next to the directed edges are the time, in days, needed to complete the task corresponding to the vertex at the start (or tail) of the edge. S F 2 6 5 J K L M 0 5 2 A 6 0 B D E 5 0 H I N 2 Z C 5 G (c) One way to find the necessary times is to make a topological sorting of the graph and then solve a certain set of Bellman-like equations that we discussed in lecture. First recall that a topological sorting of a digraph G with vertex set V and edge set E is a numbering scheme for the vertices which ensures that for all edges (i, j) E, we have i < j. Here is a version of the project s scheduling graph with suitable numbers. 0 2 6 0 5 6 2 6 5 7 0 2 5 5 2 5 0 8 2 6 5 9 Now we define t j to be the earliest time at which we could start task j given that we must complete all its prerequisite tasks. When the vertices are labelled with a topological sorting, these times satisfy t 0 and t j max k<j (k,j) E t k + w k,j 6

and so are especially easy to solve. For example t 2 t + w,2 0 + 0 0 t t 2 + w 2, 0 + t t 2 + w 2, 0 + t 5 t + w,5 + 6 0... t 9 max (t + w,9, t 6 + w 6,9 ) max ( +, 20 + 5) 25... t 6 max (t + w,6, t 5 + w 5,6 ) max ( + 0, + ) 5 The figure below has the vertex label j replaced with t j, the earliest time at which the j-th task can start. 0 0 0 6 0 0 20 2 2 6 5 25 27 8 5 2 5 0 25 29 5 2 28 5 5 25 27 The critical path is shown in purple: it involves the sequential completion of the tasks that were originally labelled A, B, D, E, F, J, K, L, M and requires a minimum of 5 days. (d) Defining T 6 t 6 5 and working backward according to T j min k>j (j,k) E T k w j,k, one can also find T j, which is the latest time at which task j can start if it is not to delay the project. For tasks on the critical path t j T j, but for the others, whose vertices are pale green in the figure above, there is a bit of slack and T j > t j. For these vertices, C, G, H, I and N, T j is given in italics. The most dramatic example is vertex C, Drains and Services: although the builder could, in principle, start this task after only days, the work doesn t become critical to timely completion of the project until day 2. (6) (after Jungnickel s Exercise..) I will give two solutions: one that s easy to think about, but very expensive to compute and another that is less obvious, but uses a much smaller graph. Jungnickel gives yet a third solution, though it is similar in spirit to the second one here. 7

The most straightforward way to solve the problem is via a modified version of the cube graph I n. Number the items to n. Now say that a vertex v I n with label s... s n, where s j {0, }, corresponds to a knapsack that contains item k iff s k. Thus if n the vertex labelled 0000 corresponds to an empty knapsack, while the vertex with label 00 corresponds to a knapsack containing only items 2 and. Now think about the edges in the graph: they connect vertices whose labels differ by one symbol. It s easy to see that this means that for each edge (u, v), one of the labels of the vertices will have exactly one more than the other and so will correspond to a rucksack containing exactly one more item. Convert I n into a directed graph by making each of its edges run from the vertex with fewer s to the one with more. The figure below shows the result of applying this procedure to I 2 and I 0 00 0 0 I 2 I 00 0 00 0 000 00 With this approach, the directed edges also have an interpretation in terms of adding an item to the knapsack. For example, when n, the directed edge e (000, 00) means put item 2 into the empty knapsack. It is thus natural to assign this edge the weight w(000, 00) c 2, the value of item 2. More generally, assign edge weight w(u, v) to be the value of the single item that is added to the knapsack when passing from vertex u to v. We still haven t taken account of the weight limit b. To do this, add one last vertex, called, say, t for terminus, to the graph. Then compute the weight W (s,... s n ) a j (6.) j s j of the knapsack that corresponds to each vertex and then draw a directed edge from any vertex with W (s,... s n ) b to the terminal vertex t and assign w(v, t) 0 for each of this last group of edges. Then a longest (in the sense of the edge weights c j ) path from the vertex corresponding to the empty knapsack to t gives the most valuable load that the pedlar can carry. As I n has 2 n vertices, this first solution can lead to a very big graph. And in order to enforce the condition on the total weight, we had actually to compute something the total weight (6.) for each of these many vertices. Here is another setup that requires many fewer vertices. It corresponds to the process of considering the objects in numerical order and never adding an object 8

whose index is less than that of one already in the knapsack. Begin the graph with a starting vertex s that corresponds to an empty knapsack. Now make a n b rectangular array of other vertices whose n rows correspond to the n distinct objects and whose b columns correspond to the allowed positive values,... b of the total weight of the knapsack. Label the entries in this block as [j, W ] where j n indicates an object and 0 W b is an allowed total weight for the knapsack. Draw a directed edge from the starting vertex s to each of the n vertices whose labels are of the form [j, a j ] and give each of these edges weight w(s, [j, a j ]) c j. These correspond to the idea that adding the j-th item increases the weight of the empty knapsack to a j and its value by c j. Next, draw a directed edge from vertex [j, W ] to vertex [j 2, W 2 ] whenever j 2 > j and W 2 W + a j2. Give these edges weight (in the sense of path length) w([j, W ], [j 2, W 2 ]) c j2 Here again, a directed edge corresponds to adding an object to the knapsack, but the vertices are now labelled by the index of the most recently-added object and the total weight of the knapsack s contents. This part of the construction simultaneously enforces the rule that we consider adding the objects to the knapsack in order of increasing index (we require j < j 2 ) and the bound on weight (there are no vertices with W > b). After all the edges from the previous step have been added we finish the construction by adding a terminal vertex, t, and edges running to t from every vertex [j, W ] with the property that deg in [j, W ] > 0. This final group of edges all receive weight w([j, W ], t) 0. Now think about a path from s to t, described as a sequence of vertices (s, [j, W ], [j 2, W 2 ],..., [j k, W k ], t). This corresponds to a knapsack containing the items numbered j, j 2,..., j k and its contents have total weight W k W k + a jk W k 2 + a jk + a jk. k a ji. and total value given by k k c ji w(s, [j, W a j ]) + w([j i, W i ], [j i+, W i+ ]). i i Clearly a longest path here produces the most valuable bundle of goods, but the graph has many fewer vertices, so the computation should be quicker. 9 i

(7) (Basic tropical arithmetic) These exercises are meant to highlight the way tropical arithmetic differs from ordinary arithmetic. (a) min(, ) (b) min(, ) (c) 0 5 min(0, 5) 0 (d) + (e) + ( ) 0 (f) 0 5 0 + 5 5 (g) 0 min(0, ) 0 (h) 0 (i) ( 5) + min(, 5) 6 (8) (Tropical matrix arithmetic) The tropical matrix product is formally similar to ordinary matrix products, save that one uses the tropical versions of multiplication and addition: [ ] [ ] [ ] 2 ( ) (2 ) ( ) (2 ) 0 (0 ) ( ) (0 ) (2 ) [ ] min(( + ), (2 + )) min(( ), (2 + )) min((0 + ), ( + )) min((0 ), (2 + )) [ ] min(, ) min(0, ) min(, ) min(, ) [ ] 0 The tropical matrix sum is even simpler: [ ] [ ] 2 0 [ ] 2 0 [ ] min(, ) min(2, ) min(0, ) min(, ) [ ] 0 (9) (Distance in graphs) This question is about using tropical arithmetic to compute the weights of minimal-weight walks. Suppose G is a weighted graph and that we have assembled a weight matrix W with entries given by Eqn. (9.2) below. Then W l jk and so the tropical matrix sum minimal weight for an l-edge walk from v j to v k k l W l yields a matrix whose entries are the minimal weights for walks that include no more than k edges. One can use this idea as the basis for an algorithm that computes the minimal weight for a walk connecting all pairs of vertices in G and the exercise was designed to verify this approach for the two graphs illustrated below. 0

G v v 2 H v 2 - v 2 v v v (a) The first part of the question asks us to compute, by inspection, the weight of the minimal-weight walks between all pairs of vertices and to tabulate the results in a matrix D. Here they are: D G 0 2 0 2 2 0 2 0 and D H 0 0 2 0. (9.) Note that paths contributing to these weights involve at most three edges. (b) Next we are asked to construct weight matrices W whose entries are and these are W G W jk { w(vj, v k ) if (v j, v k ) E otherwise and W H 2. (9.2) (c) Finally, we are asked to compute some tropical powers of the weight matrices and sum them. Given that W G W G, the results that actually require some work are 2 2 5 5 W 2 G 2 2 2 2 and W G 5 5 5 5 2 2 5 5 so that the tropical matrix sum I W G W 2 G W 2 G is 0 0 0 0 0 2 0 2 2 0 2 0. 2 2 2 2 2 2 2 2 5 5 5 5 5 5 5 5

As one should expect, this agrees with the matrix D G in Eqn. (9.). Similar calculations with W H yield 2 2 0 W 2 H and W H 2 so that the tropical matrix sum I W H 0 0 0 0 0 2 0 2 W 2 H W 2 H is 2 2 0 2 which again agrees with Eqn. (9.). (0) (Tropical polynomials) A tropical monomial is one of the terms in a tropical polynomial and has a very simple meaning in ordinary arithmetic: a x n a x x }{{} n times a + x + + x }{{} n times a + (n x). A tropical polynomial is the tropical sum of its monomials and so, for the quadratic in the problem, we have p(x) ( x 2 ) (2 x) 5 min(2x +, x + 2, 5). (0.) Which of these three terms is minimal clearly depends on x: when x 0 the least of the three will be 5, but when x 0 it will be 2x +. The value of p(x) is plotted for an illustrative range of x in Figure A0.2. Afterword: People who work in this area often talk about the roots of a tropical polynomial. They occur at those values of x where two (or more) tropical monomials are equal, so that our p(x) would have two roots, one at the place where and the other where 2x + x + 2 x x + 2 5 x. It begins to seem more sensible to call these values of x roots when one learns that they permit one to factor the polynomial into a tropical product that looks similar to the factorisations of ordinary polynomials: p(x) ( x 2 ) (2 x) 5 (x ) (x ). 2

p(x) 0 2 6 8 0 2 6 8 x Figure A0.2: The tropical quadratic p(x) from Eqn. (0.) is shown as a solid, orange piecewise-linear curve, while the values of the three monomials are given by the dashed green lines y 2x +, y x + 2 and y 5.