Computer Science 720S1C – (2022) Assignment 2 (Trees and Treewidth) Due: Saturday, April 16 Requirements This assignment deals with trees and graphs of bounded treewidth. The first part tests your under- standing of rooted tree isomorphism and the second part has you develop a linear-time algorithm (for graphs of bounded treewidth) for a known NP-hard graph optimization problem. You will submit your source code to https://www.automarker.cs.auckland.ac.nz/. If you have not used the automarker before, please read the help/FAQ page. Determine Tree Groups We want to group together the same rooted trees from a collection of rooted trees. In general we have the following constraints: • The root node always remains in this position, i.e., as root. • Each other node remains connected to its original parent node. • Each node (root or not) branches out to the same set of nodes but the order of outgoing branches may change in an arbitrary way. Thus, in the following diagram, the trees (a) and (b) could represent the same tree, but the trees represented in (c) and (d) are certainly different. The roots are labeled by 0 in this example. 1 We want to write a program that will identify matching trees (rooted tree isomorphism) under these reshuffling rule, i.e., trees that could represent the same tree. This matching is an equivalence relation and the problem can be solved by annotating each tree with the number of its equivalence class. Your task is to determine which trees are equivalent. Input Format Input (from stdin) consists of a number of scenarios, with each scenario consisting of a number of trees. Each scenario starts with a line containing a single number, n (1 ≤ n ≤ 100) specifying the number of trees in the scenario, followed by n descriptions. Each description consists of a number k (1 ≤ k ≤ 1000) specifying the number of nodes in the tree, followed by k numbers specifying the parent of each node in turn (using −1 for the root node, which has no parent). Each tree is implicitly numbered by its position in this list. The sequence of scenarios is terminated by an empty scenario, i.e., a line containing only a zero (‘0’). Output Format Output (to stdout) consists of one line for each scenario, starting with a scenario sequence number (0 based), a colon (‘:’), a space, and followed by a succession of class numbers, one for each tree, in input order, and separated by single spaces. All trees in a matching class are annotated by the same class number. Class numbers are allocated successively in input tree order, starting with 0, and increased by 1 at the first occurrence of an tree not matching any of the previous. Sample Input and Output Input Output 4 7 -1 0 0 6 6 6 0 7 -1 0 1 1 6 6 1 7 -1 3 3 0 3 0 0 7 -1 3 3 0 5 0 0 5 2 -1 0 3 -1 0 0 2 1 -1 3 -1 0 1 3 2 2 -1 0 0: 0 1 0 2 1: 0 1 0 2 1 2 Chromatic Sum For this part, you will do some basic programming regarding the t-parse representation of graphs. We use the following t-parse input format for graphs of bounded treewidth. The first token will be an integer 0 ≤ t ≤ 9 denoting the pathwidth/treewidth of the graph (i.e., it indicates a t-parse will follow). The interpretation for the remaining tokens are given in the next table. token semantic meaning i a vertex operator i, represented as an integer, where 0 ≤ i ≤ t ≤ 9 ij an edge operator (i, j) where t ≥ i > j ≥ 0 (note: no space between i and j) ( a begin marker for a pathwidth t-parse (can be nested for treewidth t-parses) ) an end marker for a pathwidth/treewidth t-parse Thus, if you read/encounter the two tokens ‘)’ and ‘(’ in sequence then this denotes a circle plus ⊕ operator. Note that it is guaranteed that each right token ‘(’ will have a matched left token ‘)’. Each ’(’ except first token must be preceded by a parenthesis and ’)’ may be succeeded “up the parse tree” by pathwidth operators. We assume boundary vertices 0, 1, . . . , t precede the first token of a pathwidth t-parse (and these empty boundaried graph axioms are not given in the input format). Assume left- associativity for all operators and at least one space between each of them, including the parentheses. Input will consist of several test cases, each on its own line. The input is terminated by a t = 0 case, which is also processed. For this part of the assignment you will learn how to exploit the structure of bounded pathwidth/treewidth for a known NP-hard graph problem: 3-ChromaticSum. For input graph of bounded pathwidth or treewidth in t-parse representation as described above, decide if it can be colored with at most 3 colors and if so output its chromatic sum, otherwise output ‘None’ . A graph G = (V,E) is 3-colorable if there is a function (e.g. proper coloring) f : V → {1, 2, 3} such that for all (u, v) ∈ E we have f(u) 6= f(v). The chromatic sum of a graph G is the minimum sum Σv∈V f(v) of a proper coloring f of G. Note the minimum number of colors needed (chromatic number) may not necessarily correspond with its minimum chromatic sum as shown in the following example. The 2-coloring on the left has a sum of 12 while the 3-coloring on the right has a smaller sum of 11. 3 Sample Input/Output Typical input instances and expected output of the two problems are shown below. Note that you can assume that each input graph fits on one line. Sample input 2 ( 10 21 1 10 21 0 10 20 2 20 21 ) 2 ( ( 10 21 1 10 21 1 21 10 ) ( 21 2 21 20 ) ( 10 ) ) 4 ( ( 10 20 30 41 4 41 31 ) ( ( 40 21 32 42 ) ( 10 0 43 10 20 ) ) ) 0 ( ( 0 ) ( 0 0 ) ) Sample output 10 10 None 4 Submission and Marks http://www.automarker.cs.auckland.ac.nz/ All input should be taken from the keyboard (stdin) and output to the console (stdout). This assignment is worth 10% of your final grade. Marks (out of a total 10) for each part’s test cases are specified on the automarker scoreboard. Note that your final grade may be marked with more difficult test cases than what is provided to the automarker. If you exceed 8 submissions per any problem test case then a 20% deduction will occur (on that case) if you eventually get it correct. Partial marks may be given later so try to submit something even if you know it is not 100% correct. 4
欢迎咨询51作业君