CSE 589 Applied Algorithms Spring 1999

Slides:



Advertisements
Similar presentations
Part VI NP-Hardness. Lecture 23 Whats NP? Hard Problems.
Advertisements

CS 336 March 19, 2012 Tandy Warnow.
Indexing DNA Sequences Using q-Grams
Lecture 24 MAS 714 Hartmut Klauck
Inexact Matching of Strings General Problem –Input Strings S and T –Questions How distant is S from T? How similar is S to T? Solution Technique –Dynamic.
Combinatorial Pattern Matching CS 466 Saurabh Sinha.
Refining Edits and Alignments Υλικό βασισμένο στο κεφάλαιο 12 του βιβλίου: Dan Gusfield, Algorithms on Strings, Trees and Sequences, Cambridge University.
Jan. 2013Dr. Yangjun Chen ACS Outline Signature Files - Signature for attribute values - Signature for records - Searching a signature file Signature.
Sequence Alignment Storing, retrieving and comparing DNA sequences in Databases. Comparing two or more sequences for similarities. Searching databases.
Dynamic Programming Reading Material: Chapter 7..
Sequencing and Sequence Alignment
Inexact Matching General Problem –Input Strings S and T –Questions How distant is S from T? How similar is S to T? Solution Technique –Dynamic programming.
Sequence Alignment Bioinformatics. Sequence Comparison Problem: Given two sequences S & T, are S and T similar? Need to establish some notion of similarity.
Sequence Alignment Variations Computing alignments using only O(m) space rather than O(mn) space. Computing alignments with bounded difference Exclusion.
Dynamic Programming1. 2 Outline and Reading Matrix Chain-Product (§5.3.1) The General Technique (§5.3.2) 0-1 Knapsack Problem (§5.3.3)
Sequence Alignment II CIS 667 Spring Optimal Alignments So we know how to compute the similarity between two sequences  How do we construct an.
Multiple Sequence alignment Chitta Baral Arizona State University.
Recap 3 different types of comparisons 1. Whole genome comparison 2. Gene search 3. Motif discovery (shared pattern discovery)
Physical Mapping II + Perl CIS 667 March 2, 2004.
Sequence similarity. Motivation Same gene, or similar gene Suffix of A similar to prefix of B? Suffix of A similar to prefix of B..Z? Longest similar.
1 Efficient Discovery of Conserved Patterns Using a Pattern Graph Inge Jonassen Pattern Discovery Arwa Zabian 13/07/2015.
Phylogenetic Tree Construction and Related Problems Bioinformatics.
Class 2: Basic Sequence Alignment
1 Theory I Algorithm Design and Analysis (11 - Edit distance and approximate string matching) Prof. Dr. Th. Ottmann.
. Sequence Alignment I Lecture #2 This class has been edited from Nir Friedman’s lecture. Changes made by Dan Geiger, then Shlomo Moran. Background Readings:
1 Exact Set Matching Charles Yan Exact Set Matching Goal: To find all occurrences in text T of any pattern in a set of patterns P={p 1,p 2,…,p.
Sequence comparison: Local alignment
Important Problem Types and Fundamental Data Structures
Finding Regulatory Motifs in DNA Sequences. Motifs and Transcriptional Start Sites gene ATCCCG gene TTCCGG gene ATCCCG gene ATGCCG gene ATGCCC.
Pairwise alignments Introduction Introduction Why do alignments? Why do alignments? Definitions Definitions Scoring alignments Scoring alignments Alignment.
Space-Efficient Sequence Alignment Space-Efficient Sequence Alignment Bioinformatics 202 University of California, San Diego Lecture Notes No. 7 Dr. Pavel.
Physical Mapping of DNA Shanna Terry March 2, 2004.
Mon C222 lecture by Veli Mäkinen Thu C222 study group by VM  Mon C222 exercises by Anna Kuosmanen Algorithms in Molecular Biology, 5.
Comp. Genomics Recitation 2 12/3/09 Slides by Igor Ulitsky.
Pairwise Sequence Alignment (I) (Lecture for CS498-CXZ Algorithms in Bioinformatics) Sept. 22, 2005 ChengXiang Zhai Department of Computer Science University.
1 Generalized Tree Alignment: The Deferred Path Heuristic Stinus Lindgreen
CSCE350 Algorithms and Data Structure Lecture 17 Jianjun Hu Department of Computer Science and Engineering University of South Carolina
Sequence Analysis CSC 487/687 Introduction to computing for Bioinformatics.
JM - 1 Introduction to Bioinformatics: Lecture III Genome Assembly and String Matching Jarek Meller Jarek Meller Division of Biomedical.
Outline More exhaustive search algorithms Today: Motif finding
Greedy Methods and Backtracking Dr. Marina Gavrilova Computer Science University of Calgary Canada.
Prof. Swarat Chaudhuri COMP 482: Design and Analysis of Algorithms Spring 2012 Lecture 16.
Sequence Comparison Algorithms Ellen Walker Bioinformatics Hiram College.
1 Sequence Alignment Input: two sequences over the same alphabet Output: an alignment of the two sequences Example: u GCGCATGGATTGAGCGA u TGCGCCATTGATGACCA.
Intro to Alignment Algorithms: Global and Local Intro to Alignment Algorithms: Global and Local Algorithmic Functions of Computational Biology Professor.
Comp. Genomics Recitation 10 Clustering and analysis of microarrays.
A * Search A* (pronounced "A star") is a best first, graph search algorithm that finds the least-cost path from a given initial node to one goal node out.
Strings Basic data type in computational biology A string is an ordered succession of characters or symbols from a finite set called an alphabet Sequence.
Doug Raiford Phage class: introduction to sequence databases.
Chapter 13 Backtracking Introduction The 3-coloring problem
Comp. Genomics Recitation 7 Clustering and analysis of microarrays.
CSCI-256 Data Structures & Algorithm Analysis Lecture Note: Some slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved. 21.
An Algorithm for the Consecutive Ones Property Claudio Eccher.
9/27/10 A. Smith; based on slides by E. Demaine, C. Leiserson, S. Raskhodnikova, K. Wayne Adam Smith Algorithm Design and Analysis L ECTURE 16 Dynamic.
Core String Edits, Alignments, and Dynamic Programming.
CSCI2950-C Genomes, Networks, and Cancer
Part VI NP-Hardness.
Sequence comparison: Local alignment
Algorithms and networks
Sequence Alignment 11/24/2018.
Algorithms and networks
Intro to Alignment Algorithms: Global and Local
Lecture 19-Problem Solving 4 Incremental Method
Dynamic Programming-- Longest Common Subsequence
Ch09 _2 Approximation algorithm
Computational Genomics Lecture #3a
Important Problem Types and Fundamental Data Structures
Data Structures and Algorithm Analysis Lecture 15
Fragment Assembly 7/30/2019.
Presentation transcript:

CSE 589 Applied Algorithms Spring 1999 Approximate String Matching Contiguous Ordering - PQ Trees

DNA DNA is a large molecule that can be abstractly defined as a sequence of symbols from the set, A, C, G, T, called nucleotides. The human genome has about 3 billion nucleotides. A huge percentage of the genome is shared by all humans. Some of the variation makes us different. Some of the variation is inconsequential. The human genome is still being discovered. CSE 589 - Lecture 18 - Spring 1999

Approximate Matching Two DNA sequences approximately match if one can be transformed into the other by a short sequence of replacements and insertions of gaps. Example: S = AGCATG T = AGATCGT Approximate matching S’ = A G - - C A T G T’ = A G A T C G T - - is a gap CSE 589 - Lecture 18 - Spring 1999

Applications of Approximate Matching DNA string alignment. Given two similar DNA sequences find the best way to align them to the same length. DNA database searching. Find DNA sequences that are similar to the query. Approximate text matching for searching. agrep in unix Spell checking Find the words that most closely match the misspelled word. CSE 589 - Lecture 18 - Spring 1999

Scoring an Approximate Matching We need a way of scoring the quality of an approximate matching. A scoring function is a mapping s from {A, C, G, T, -}2 to integers. The quantity s(x,y) is the score of a pair of symbols, x and y. Example: s(x,y) = +2 if x=y and x in {A,C,G,T} s(x,y) = -1 otherwise CSE 589 - Lecture 18 - Spring 1999

Scoring Example Example: Score = 4 x 2 + 4 x(-1) = 4 S’ = A G - - C A T G T’ = A G A T C G T - Score = 4 x 2 + 4 x(-1) = 4 Is this the best match between the two strings with this scoring function? S = AGCATG T = AGATCGT CSE 589 - Lecture 18 - Spring 1999

Approximate String Matching Problem Input: Two strings S and T in an alphabet S and a scoring function s. Output: Two strings S’ and T’ in the alphabet S’ = S union {-} with the properties: S = S’ with the -’s removed. T = T’ with the -’s removed. |S’| = |T’| The score is maximized. CSE 589 - Lecture 18 - Spring 1999

Algorithms for Approximate String Matching O(mn) time and storage algorithm (using dynamic programming) invented by Needleman and Wunch, 1970. Fischer and Paterson, 1974, invented a very similar algorithm for computing the minimum edit distance between two strings. CSE 589 - Lecture 18 - Spring 1999

Dynamic Programming for Approximate String Matching Assume S has length m and T has length n. For all i and j, 0 < i < m and 0 < j < n, we find the maximum score for the sequences S[1..i] and T[1..j]. The “dynamic program” fills in a (m+1)x(n+1) matrix M in increasing order of i and j with these maximum values. Once the dynamic program has completed we can recover the optimal string S’ and T’ from the matrix M. CSE 589 - Lecture 18 - Spring 1999

Max Score Recurrence Define M[i,j] = maximum score for a match between S[1..i] and T[1..j]. match of S[1..i] with empty string match of T[1..j] with empty string CSE 589 - Lecture 18 - Spring 1999

Dynamic Program Initialization scoring function +2 for exact match -1 otherwise S = AGCATG T = AGATCGT 0 1 2 3 4 5 6 7 A G A T C G T -1 -2 -3 -4 -5 -6 -7 1 A 2 G 3 C 4 A 5 T 6 G -1 -2 -3 -4 -5 -6 CSE 589 - Lecture 18 - Spring 1999

The Dynamic Programming Pattern b d = a + 2 if s = t = a - 1 otherwise h = c - 1 v = b - 1 x = max(d, h, v) c x s CSE 589 - Lecture 18 - Spring 1999

Dynamic Program Example (1) scoring function +2 for exact match -1 otherwise S = AGCATG T = AGATCGT 0 1 2 3 4 5 6 7 A G A T C G T -1 -2 -3 -4 -5 -6 -7 1 A 2 G 3 C 4 A 5 T 6 G -1 2 -2 -3 -4 -5 -6 CSE 589 - Lecture 18 - Spring 1999

Dynamic Program Example (2) scoring function +2 for exact match -1 otherwise S = AGCATG T = AGATCGT 0 1 2 3 4 5 6 7 A G A T C G T -1 -2 -3 -4 -5 -6 -7 1 A 2 G 3 C 4 A 5 T 6 G -1 2 1 -2 1 -3 -4 -5 -6 CSE 589 - Lecture 18 - Spring 1999

Dynamic Program Example (3) scoring function +2 for exact match -1 otherwise S = AGCATG T = AGATCGT 0 1 2 3 4 5 6 7 A G A T C G T -1 -2 -3 -4 -5 -6 -7 1 A 2 G 3 C 4 A 5 T 6 G -1 2 1 -2 1 4 -3 -4 -5 -6 CSE 589 - Lecture 18 - Spring 1999

Dynamic Program Example (4) scoring function +2 for exact match -1 otherwise S = AGCATG T = AGATCGT 0 1 2 3 4 5 6 7 A G A T C G T -1 -2 -3 -4 -5 -6 -7 1 A 2 G 3 C 4 A 5 T 6 G -1 2 1 -1 -2 -3 -4 -2 1 4 3 2 1 -1 -3 3 3 2 4 3 2 -4 -1 2 5 4 3 3 2 -5 -2 1 4 7 6 5 -6 -3 3 6 6 CSE 589 - Lecture 18 - Spring 1999

Dynamic Program Example (5) scoring function +2 for exact match -1 otherwise S = AGCATG T = AGATCGT 0 1 2 3 4 5 6 7 A G A T C G T -1 -2 -3 -4 -5 -6 -7 1 A 2 G 3 C 4 A 5 T 6 G -1 2 1 -1 -2 -3 -4 -2 1 4 3 2 1 -1 -3 3 3 2 4 3 2 -4 -1 2 5 4 3 3 2 Max score for any matching -5 -2 1 4 7 6 5 5 -6 -3 3 6 6 8 7 CSE 589 - Lecture 18 - Spring 1999

Dynamic Programming Order By row for i = 1 to m do for j = 1 to n do M[i,j] := ... By column for j = 1 to n do for i = 1 to m do M[i,j] := ... By diagonal Which order is best? CSE 589 - Lecture 18 - Spring 1999

How to Find the Matching To find S’ and T’ we build a matching graph. t a b x = a + 2 if s = t = a - 1 otherwise ? x = c - 1 ? x = b - 1 ? c x s If the answer is yes, include the corresponding edge. CSE 589 - Lecture 18 - Spring 1999

Computing the Matching Graph (1) 0 1 2 3 4 5 6 7 A G A T C G T -1 -2 -3 -4 -5 -6 -7 1 A 2 G 3 C 4 A 5 T 6 G -1 2 1 -1 -2 -3 -4 -2 1 4 3 2 1 -1 -3 3 3 2 4 3 2 -4 -1 2 5 4 3 3 2 -5 -2 1 4 7 6 5 5 -6 -3 3 6 6 8 7 CSE 589 - Lecture 18 - Spring 1999

Computing the Matching Graph (2) 0 1 2 3 4 5 6 7 A G A T C G T -1 -2 -3 -4 -5 -6 -7 1 A 2 G 3 C 4 A 5 T 6 G -1 2 1 -1 -2 -3 -4 -2 1 4 3 2 1 -1 -3 3 3 2 4 3 2 -4 -1 2 5 4 3 3 2 -5 -2 1 4 7 6 5 5 -6 -3 3 6 6 8 7 CSE 589 - Lecture 18 - Spring 1999

Computing the Matching Graph (3) 0 1 2 3 4 5 6 7 A G A T C G T -1 -2 -3 -4 -5 -6 -7 1 A 2 G 3 C 4 A 5 T 6 G -1 2 1 -1 -2 -3 -4 -2 1 4 3 2 1 -1 -3 3 3 2 4 3 2 -4 -1 2 5 4 3 3 2 -5 -2 1 4 7 6 5 5 -6 -3 3 6 6 8 7 CSE 589 - Lecture 18 - Spring 1999

Computing the Matching Graph 0 1 2 3 4 5 6 7 A G A T C G T -1 -2 -3 -4 -5 -6 -7 1 A 2 G 3 C 4 A 5 T 6 G -1 2 1 -1 -2 -3 -4 -2 1 4 3 2 1 -1 -3 3 3 2 4 3 2 -4 -1 2 5 4 3 3 2 -5 -2 1 4 7 6 5 5 -6 -3 3 6 6 8 7 CSE 589 - Lecture 18 - Spring 1999

Computing the Matching Path 0 1 2 3 4 5 6 7 A G A T C G T Matching Path (0,0) (1,1) (2,2) (3,2) (4,3) (5,4) (5,5) (6,6) (6,7) -1 -2 -3 -4 -5 -6 -7 1 A 2 G 3 C 4 A 5 T 6 G -1 2 1 -1 -2 -3 -4 -2 1 4 3 2 1 -1 -3 3 3 2 4 3 2 -4 -1 2 5 4 3 3 2 -5 -2 1 4 7 6 5 5 -6 -3 3 6 6 8 7 There can be multiple paths CSE 589 - Lecture 18 - Spring 1999

Algorithm to find Matching Follow any path in the matching graph starting at (m,n). The path will end up at (0,0). Output each pair (i,j) visited to make a list of pairs forming a matching path. CSE 589 - Lecture 18 - Spring 1999

Computing the Matching p = length of the matching path P i :=1; j := 1; for k = 1 to p do if P[k].first = P[k-1].first then S’[k] := - ; else S’[k] := S[i]; i := i + 1; if P[k].second = P[k-1].second then T’[k] := - ; T’[k] := T[j]; j := j + 1; P 0 (0,0) 1 (1,1) 2 (2,2) 3 (3,2) 4 (4,3) 5 (5,4) 6 (5,5) 7 (6,6) 8 (6,7) first second CSE 589 - Lecture 18 - Spring 1999

Creating the Matching 1 2 3 4 5 6 S = A G C A T G T = A G A T C G T P 0 (0,0) 1 (1,1) 2 (2,2) 3 (3,2) 4 (4,3) 5 (5,4) 6 (5,5) 7 (6,6) 8 (6,7) Score = 5 x 2 + 3 x (-1) = 7 CSE 589 - Lecture 18 - Spring 1999

Example of Multiple Paths 0 1 2 3 4 5 C A T G T Multiple matching with same score -1 -2 -3 -4 -5 - A C G C T G C A T G - T - A C G C T G - - C A - T G T - - C A T G T 1 A 2 C 3 G 4 C 5 T 6 G -1 -1 1 -1 -2 -2 1 -1 -2 -3 -1 2 1 -4 -1 -1 -1 1 1 -5 -2 -2 1 3 score = 3 x 2 + 4 x (-1) = 2 -6 -3 -3 3 2 CSE 589 - Lecture 18 - Spring 1999

Approximate String Searching Input: Query string Q and target string T in an alphabet S and a scoring function s, and a minimum score r. Output: The set of k such that for some i < k score(Q,T[i..k]) > r. That is, an approximate match of some substring of T that ends at index k has a score of at least r. score(X,Y) is the maximum score for all matchings between X and Y. CSE 589 - Lecture 18 - Spring 1999

Search Algorithm We change the previous dynamic program slightly. We don’t care where the match begins in T Choose all k such that M[m,k] > r where m is the length of Q. CSE 589 - Lecture 18 - Spring 1999

Example of Approximate Matching scoring function +2 for exact match -1 otherwise Q = AGTA T = AGATCGTAGT r = 5 0 1 2 3 4 5 6 7 8 9 10 A G A T C G T A G T 1 A 2 G 3 T 4 A -1 2 1 2 1 -1 -1 2 1 -2 1 4 3 2 1 2 1 1 4 3 -3 3 3 5 4 3 4 3 3 6 -4 -1 2 5 4 4 3 3 6 5 5 output is 3, 8, 9, 10 CSE 589 - Lecture 18 - Spring 1999

Recovering the Matchings 0 1 2 3 4 5 6 7 8 9 10 A G A T C G T A G T 1 A 2 G 3 T 4 A -1 2 1 2 1 -1 -1 2 1 Q = AGTA T = AGATCGTAGT -2 1 4 3 2 1 2 1 1 4 3 -3 3 3 5 4 3 4 3 3 6 -4 -1 2 5 4 4 3 3 6 5 5 Q AGTA T AG-A 1-3 Q A--GTA- T ATCGTAG 3-9 Q A--GTA T ATCGTA 3-8 Q AGTA T AGT- 8-10 CSE 589 - Lecture 18 - Spring 1999

Notes on Approximate Matching Time complexity O(mn) Storage complexity O(mn) Storage in the dynamic program can be reduced to O(m+n) by just keeping the frontier. Recovering the matching can be done in time O(m+n) cleverly. CSE 589 - Lecture 18 - Spring 1999

DNA Sequence Reconstruction DNA can only be sequenced in relatively small pieces, up to about 1,000 nucleotides. By chemistry a much longer DNA sequence can be broken up into overlapping sequences called clones. DNA clones CSE 589 - Lecture 18 - Spring 1999

Tagging the Clones By chemistry the clones can be tagged by identifying a region of the DNA uniquely. Each clone is then tagged correspondingly. E G F H A I B D C DNA 2 3 4 1 6 clones 5 7 8 10 9 CSE 589 - Lecture 18 - Spring 1999

Problem to Solve Given a set of tagged clones, find a consistent ordering of the tags that determines a possible ordering of the DNA molecule. 1. {E, G} 2. {F, G , H} 3. {A, I} 4. {C, D} 5. {E, G} 6. {A, H, I} 7. {B, D} 8. {F, H} 9. {A, B, D, I} 10. {C, D} output input E G F H A I B D C 1 3 4 2 7 6 10 5 8 9 CSE 589 - Lecture 18 - Spring 1999

Contiguous Ordering Problem Input: A universe U and a set S = {S1, S2, ..., Sm} of subsets of U. Output: An ordering, b1,b2, ... , bn, of U such that for all i, Si = {bj, bj+1, ..., bj +k} for some j and k. That is each set in S is contiguous in the ordering of U. In this terminology the U is the set of tags and S is the set of tagged clones. CSE 589 - Lecture 18 - Spring 1999

Contiguous Ordering Solutions Contiguous ordering problem U = {A, B, C, D, E, F, G, H, I} S = {{E, G} {F, G , H} {A, I} {C, D} {E, G} {A, H, I} {B, D} {F, H} {A, B, D, I} {C, D}} E G F H A I B D C Alternate Solutions interchange I and A E G F H I A B D C C D B I A H F G E C D B A I H F G E reversal CSE 589 - Lecture 18 - Spring 1999

Linear Time Algorithm Booth and Lueker, 1976, designed an algorithm that runs in time O(n+s). n is the size of the universe and s is the sum of the sizes of the sets. It requires a novel data structure called the PQ tree that represents a set of orderings. PQ trees can also be used to test whether an undirected graph is planar. CSE 589 - Lecture 18 - Spring 1999

DNA Downside Tagging can have errors. A tag might be omitted from a clone A clone might be identified as having a tag when it doesn’t A tag might be duplicated, not be unique. In all these cases finding the “best” ordering of the tags in an NP-hard problem. In our perfect world without errors, ordering can be done in linear time. CSE 589 - Lecture 18 - Spring 1999

PQ Trees ... ... PQ trees are built from three types of nodes P node Q node leaf A ... ... Each leaf has a unique label. Children can be reordered. Children can be reversed. CSE 589 - Lecture 18 - Spring 1999

Example PQ-Tree T F C A E B D The frontier of T defines the ordering F(T) = FCABDE, just read the leaves left to right. T’ is equivalent to T if T can be transformed into T by reordering the children of P nodes and reversing the children of Q nodes. CSE 589 - Lecture 18 - Spring 1999

Equivalent PQ Trees T’ T F C F C E A A E B D B D FCABDE FEBDAC CSE 589 - Lecture 18 - Spring 1999

Orderings Defined by a PQ Tree Given a PQ tree T the orderings defined by T is PQ(T) ={F(T’) : T’ is equivalent to T} T There are 6 x 2 x 2 = 24 distinct orderings in PQ(T). F C A E B D CSE 589 - Lecture 18 - Spring 1999

PQ Tree Solution for the Contiguous Ordering Problem Input: A universe U and a set S = {S1, S2, ..., Sm} of subsets of U. Output: A PQ tree T with leaves U with the property that PQ(T) is the set of all orderings of U where each set in S is contiguous in the ordering. CSE 589 - Lecture 18 - Spring 1999

Example (1) U = {A,B,C,D,E,F} S = {{A,C,E}, {A,C,F}, {B,D,E}} T Initial PQ tree. All orderings are possible. That is, PQ(T) = all orderings B D F A C E CSE 589 - Lecture 18 - Spring 1999

Example (2) U = {A,B,C,D,E,F} S = {{A,C,E}, {A,C,F}, {B,D,E}} B D F A CSE 589 - Lecture 18 - Spring 1999

Example (3) U = {A,B,C,D,E,F} S = {{A,C,E}, {A,C,F}, {B,D,E}} {A,C,F} CSE 589 - Lecture 18 - Spring 1999

Example (4) U = {A,B,C,D,E,F} S = {{A,C,E}, {A,C,F}, {B,D,E}} B D F B CSE 589 - Lecture 18 - Spring 1999

Example (5) U = {A,B,C,D,E,F} S = {{A,C,E}, {A,C,F}, {B,D,E}} B D B D CSE 589 - Lecture 18 - Spring 1999

Example (6) U = {A,B,C,D,E,F} S = {{A,C,E}, {A,C,F}, {B,D,E}} B D B D CSE 589 - Lecture 18 - Spring 1999

Example (7) U = {A,B,C,D,E,F} S = {{A,C,E}, {A,C,F}, {B,D,E}} {B,D,E} CSE 589 - Lecture 18 - Spring 1999

Example (8) U = {A,B,C,D,E,F} S = {{A,C,E}, {A,C,F}, {B,D,E}} B D B D CSE 589 - Lecture 18 - Spring 1999

Example (9) U = {A,B,C,D,E,F} S = {{A,C,E}, {A,C,F}, {B,D,E}} B D B D CSE 589 - Lecture 18 - Spring 1999

Example (10) U = {A,B,C,D,E,F} S = {{A,C,E}, {A,C,F}, {B,D,E}} E F B D CSE 589 - Lecture 18 - Spring 1999

Example (11) U = {A,B,C,D,E,F} S = {{A,C,E}, {A,C,F}, {B,D,E}} E F E F CSE 589 - Lecture 18 - Spring 1999

Example (12) U = {A,B,C,D,E,F} S = {{A,C,E}, {A,C,F}, {B,D,E}} E F B D There are 8 orderings that are possible in keeping each of these sets contiguous. CSE 589 - Lecture 18 - Spring 1999