Upload
chris-morris
View
588
Download
0
Tags:
Embed Size (px)
Citation preview
A Classification of All Connected Graphs on Seven, Eight, and Nine Vertices With
Respect to the Property of Intrinsic Knotting
Chris Morris
October 15, 2008Chair: Dr. Tyson Henry
Member: Dr. Thomas Mattman
Background
2
What is a knot?
3
What is a knot?
Exactly what you think it is!
3
What is a knot?
Exactly what you think it is!
Imagine an extension cord, tangle it, plug in the ends
3
What is a knot?
Exactly what you think it is!
Imagine an extension cord, tangle it, plug in the ends
There is no way to ‘remove’ the knot without unplugging the ends (or cutting the cord)
3
What is a knot?
Exactly what you think it is!
Imagine an extension cord, tangle it, plug in the ends
There is no way to ‘remove’ the knot without unplugging the ends (or cutting the cord)
Can be classified, simplified and studied
3
What is a knot?
Exactly what you think it is!
Imagine an extension cord, tangle it, plug in the ends
There is no way to ‘remove’ the knot without unplugging the ends (or cutting the cord)
Can be classified, simplified and studied
3Unknot
What is a knot?
Exactly what you think it is!
Imagine an extension cord, tangle it, plug in the ends
There is no way to ‘remove’ the knot without unplugging the ends (or cutting the cord)
Can be classified, simplified and studied
3Unknot Trefoil
What is a graph?
4
What is a graph?
Series of vertices (points) connected by edges (lines)
4
What is a graph?
Series of vertices (points) connected by edges (lines)
Airports and flight paths
4
What is a graph?
Series of vertices (points) connected by edges (lines)
Airports and flight paths
Connected graph: from any vertex a path exists to any other vertex
4
What is a graph?
Series of vertices (points) connected by edges (lines)
Airports and flight paths
Connected graph: from any vertex a path exists to any other vertex
Not Connected4
What is a graph?
Series of vertices (points) connected by edges (lines)
Airports and flight paths
Connected graph: from any vertex a path exists to any other vertex
Not Connected Connected4
How do knots and graphs relate?
5
How do knots and graphs relate?
Cycles exist in graphs which:
5
How do knots and graphs relate?
Cycles exist in graphs which: begin and end with same vertex
5
How do knots and graphs relate?
Cycles exist in graphs which: begin and end with same vertex travel to other vertices at most once
5
How do knots and graphs relate?
Cycles exist in graphs which: begin and end with same vertex travel to other vertices at most once ex. 0 ➜ 1 ➜ 3 ➜ 4 ➜ 2 ➜ 0
5
How do knots and graphs relate?
Cycles exist in graphs which: begin and end with same vertex travel to other vertices at most once ex. 0 ➜ 1 ➜ 3 ➜ 4 ➜ 2 ➜ 0
0
14
3 2
5
How do knots and graphs relate?
Cycles exist in graphs which: begin and end with same vertex travel to other vertices at most once ex. 0 ➜ 1 ➜ 3 ➜ 4 ➜ 2 ➜ 0
Cycle is a loop, much like the extension cord
0
14
3 2
5
How do knots and graphs relate?
Cycles exist in graphs which: begin and end with same vertex travel to other vertices at most once ex. 0 ➜ 1 ➜ 3 ➜ 4 ➜ 2 ➜ 0
Cycle is a loop, much like the extension cord
Cycles can be knotted
0
14
3 2
5
What is intrinsic knotting (IK)?
6
What is intrinsic knotting (IK)?
Graphs can be embedded in 3 dimensional space in an infinite number of ways
6
What is intrinsic knotting (IK)?
Graphs can be embedded in 3 dimensional space in an infinite number of ways
6
0
14
23
What is intrinsic knotting (IK)?
Graphs can be embedded in 3 dimensional space in an infinite number of ways
6
0
14
2
3
What is intrinsic knotting (IK)?
Graphs can be embedded in 3 dimensional space in an infinite number of ways
6
0
14
2
3
What is intrinsic knotting (IK)?
Graphs can be embedded in 3 dimensional space in an infinite number of ways
6
0
14
23
What is intrinsic knotting (IK)?
Graphs can be embedded in 3 dimensional space in an infinite number of ways
Different embeddings may yield cycles with different knots
6
0
14
23
What is intrinsic knotting (IK)?
Graphs can be embedded in 3 dimensional space in an infinite number of ways
Different embeddings may yield cycles with different knots
Can always force a knotted embedding
6
0
14
23
What is intrinsic knotting (IK)?
Graphs can be embedded in 3 dimensional space in an infinite number of ways
Different embeddings may yield cycles with different knots
Can always force a knotted embedding
6
0
14
23
What is intrinsic knotting (IK)?
Graphs can be embedded in 3 dimensional space in an infinite number of ways
Different embeddings may yield cycles with different knots
Can always force a knotted embedding
Intrinsic knotting means, no matter the embedding, at least one cycle is knotted
6
0
14
23
What is a graph minor?
7
What is a graph minor?
The graph G’ that remains after any of the following are performed on graph G:
7
What is a graph minor?
The graph G’ that remains after any of the following are performed on graph G: edge removals
7
0
14
23
What is a graph minor?
The graph G’ that remains after any of the following are performed on graph G: edge removals
7
0
14
23
What is a graph minor?
The graph G’ that remains after any of the following are performed on graph G: edge removals vertex removals
7
0
14
23
What is a graph minor?
The graph G’ that remains after any of the following are performed on graph G: edge removals vertex removals
7
0
14
What is a graph minor?
The graph G’ that remains after any of the following are performed on graph G: edge removals vertex removals edge contractions
7
0
14
23
What is a graph minor?
The graph G’ that remains after any of the following are performed on graph G: edge removals vertex removals edge contractions
7
0
14
2
What is a graph minor?
The graph G’ that remains after any of the following are performed on graph G: edge removals vertex removals edge contractions
G is not a minor of G
7
0
14
2
What is a graph minor?
The graph G’ that remains after any of the following are performed on graph G: edge removals vertex removals edge contractions
G is not a minor of G
Minor Minimal: A property exhibited by G but not by any of its minors
7
0
14
2
What is a graph minor?
The graph G’ that remains after any of the following are performed on graph G: edge removals vertex removals edge contractions
G is not a minor of G
Minor Minimal: A property exhibited by G but not by any of its minors
Expansion: Opposite of a minor7
0
14
2
A Classification of All Connected Graphs on Seven, Eight, and Nine Vertices With
Respect to the Property of Intrinsic Knotting
8
Methods
9
What is known about intrinsic knotting?
10
What is known about intrinsic knotting?
If H is IK and H is a minor of G, then G is IK too
10
What is known about intrinsic knotting?
If H is IK and H is a minor of G, then G is IK too
Know that there are a finite number of minor minimal IK graphs
10
What is known about intrinsic knotting?
If H is IK and H is a minor of G, then G is IK too
Know that there are a finite number of minor minimal IK graphs
Currently about 40 are known
10
What is known about intrinsic knotting?
If H is IK and H is a minor of G, then G is IK too
Know that there are a finite number of minor minimal IK graphs
Currently about 40 are known
The big question in intrinsic knotting is: How many minor minimal IK graphs are there total?
10
What is known about intrinsic knotting?
If H is IK and H is a minor of G, then G is IK too
Know that there are a finite number of minor minimal IK graphs
Currently about 40 are known
The big question in intrinsic knotting is: How many minor minimal IK graphs are there total?
Classifying graphs as IK is not easy
10
Why is it so difficult to classify a graph as IK?
11
Why is it so difficult to classify a graph as IK?
Infinite number of embeddings for any graph
11
Why is it so difficult to classify a graph as IK?
Infinite number of embeddings for any graph
If one embedding is not knotted, the graph is not IK
11
Why is it so difficult to classify a graph as IK?
Infinite number of embeddings for any graph
If one embedding is not knotted, the graph is not IK
No definitive approach to classify a graph as intrinsically knotted
11
Why is it so difficult to classify a graph as IK?
Infinite number of embeddings for any graph
If one embedding is not knotted, the graph is not IK
No definitive approach to classify a graph as intrinsically knotted
Traditionally proofs are done by hand
11
Is this graph intrinsically knotted?
12
Can we prove intrinsic knotting?
13
Can we prove intrinsic knotting?
Proofs to show certain graphs are IK
13
Can we prove intrinsic knotting?
Proofs to show certain graphs are IK ex: exhibit one of the 40 as a minor
13
Can we prove intrinsic knotting?
Proofs to show certain graphs are IK ex: exhibit one of the 40 as a minor
Proofs to show certain graphs are not IK
13
Can we prove intrinsic knotting?
Proofs to show certain graphs are IK ex: exhibit one of the 40 as a minor
Proofs to show certain graphs are not IK ex: 6 vertices or less
13
Can we prove intrinsic knotting?
Proofs to show certain graphs are IK ex: exhibit one of the 40 as a minor
Proofs to show certain graphs are not IK ex: 6 vertices or less
No proof to show any arbitrary graph is or is not IK
13
What exactly did I do?
14
What exactly did I do?
Classified graphs as IK, not IK or indeterminate
14
What exactly did I do?
Classified graphs as IK, not IK or indeterminate
Focused on all connected graphs on 7, 8 and 9 vertices
14
What exactly did I do?
Classified graphs as IK, not IK or indeterminate
Focused on all connected graphs on 7, 8 and 9 vertices
Leveraged the computer to perform this classification in a brute-force fashion
14
What exactly did I do?
Classified graphs as IK, not IK or indeterminate
Focused on all connected graphs on 7, 8 and 9 vertices
Leveraged the computer to perform this classification in a brute-force fashion
Encoded proved research as programmatic classification tests which could be applied to a graph
14
What exactly did I do?
Classified graphs as IK, not IK or indeterminate
Focused on all connected graphs on 7, 8 and 9 vertices
Leveraged the computer to perform this classification in a brute-force fashion
Encoded proved research as programmatic classification tests which could be applied to a graph
Provided a list of indeterminate graphs which can be scrutinized by others
14
The Classification Tests
15
The Classification Tests
A graph is not IK if:
15
The Classification Tests
A graph is not IK if: vertices ≤ 6
15
The Classification Tests
A graph is not IK if: vertices ≤ 6 edges < 15
15
The Classification Tests
A graph is not IK if: vertices ≤ 6 edges < 15 is minor of known minor minimal IK graph
15
The Classification Tests
A graph is not IK if: vertices ≤ 6 edges < 15 is minor of known minor minimal IK graph has a planar subgraph after removing any two vertices
15
The Classification Tests
A graph is not IK if: vertices ≤ 6 edges < 15 is minor of known minor minimal IK graph has a planar subgraph after removing any two vertices
A graph is IK if:
15
The Classification Tests
A graph is not IK if: vertices ≤ 6 edges < 15 is minor of known minor minimal IK graph has a planar subgraph after removing any two vertices
A graph is IK if: edges ≥ (5 * vertices) – 14
15
The Classification Tests
A graph is not IK if: vertices ≤ 6 edges < 15 is minor of known minor minimal IK graph has a planar subgraph after removing any two vertices
A graph is IK if: edges ≥ (5 * vertices) – 14 has known IK graph as a minor
15
The Algorithm
16
The Algorithm
iterate over each graph in set of graphs
16
The Algorithm
iterate over each graph in set of graphsiterate over each test in set of tests
16
The Algorithm
iterate over each graph in set of graphsiterate over each test in set of tests
apply test to graph
16
The Algorithm
iterate over each graph in set of graphsiterate over each test in set of tests
apply test to graph
done if graph is IK or not IK
16
The Algorithm
iterate over each graph in set of graphsiterate over each test in set of tests
apply test to graph
done if graph is IK or not IKend
16
The Algorithm
iterate over each graph in set of graphsiterate over each test in set of tests
apply test to graph
done if graph is IK or not IKendgraph is indeterminate
16
The Algorithm
iterate over each graph in set of graphsiterate over each test in set of tests
apply test to graph
done if graph is IK or not IKendgraph is indeterminate
end
16
The Implementation
17
The Implementation
Originally implemented in Java
17
The Implementation
Originally implemented in Java
Designed algorithms for minor and planarity detection
17
The Implementation
Originally implemented in Java
Designed algorithms for minor and planarity detection
Most ‘risky’ parts of entire design were these algorithms
17
The Implementation
Originally implemented in Java
Designed algorithms for minor and planarity detection
Most ‘risky’ parts of entire design were these algorithms
Wanted to use known, proven tools, instead of my algorithms for the ‘risky’ parts
17
The Implementation
Originally implemented in Java
Designed algorithms for minor and planarity detection
Most ‘risky’ parts of entire design were these algorithms
Wanted to use known, proven tools, instead of my algorithms for the ‘risky’ parts
Transitioned to Ruby because faster interface with outside tools
17
The Intrinsic Knotting Toolset
18
The Intrinsic Knotting Toolset
installer
18
The Intrinsic Knotting Toolset
installer graph_generator
18
The Intrinsic Knotting Toolset
installer graph_generator graph_finder
18
The Intrinsic Knotting Toolset
installer graph_generator graph_finder graph_complementor
18
The Intrinsic Knotting Toolset
installer graph_generator graph_finder graph_complementor ik_classifier
18
The Intrinsic Knotting Toolset
installer graph_generator graph_finder graph_complementor ik_classifier java_ik_classifier
18
The Intrinsic Knotting Toolset
installer graph_generator graph_finder graph_complementor ik_classifier java_ik_classifier ik_summarizer
18
The Intrinsic Knotting Toolset
installer graph_generator graph_finder graph_complementor ik_classifier java_ik_classifier ik_summarizer expansion_mapper
18
Results
19
7-Vertex Graphs
20
7-Vertex Graphs
853 total connected graphs
20
7-Vertex Graphs
853 total connected graphs
852 not intrinsically knotted
20
7-Vertex Graphs
853 total connected graphs
852 not intrinsically knotted
1 intrinsically knotted (K7)
20
7-Vertex Graphs
853 total connected graphs
852 not intrinsically knotted
1 intrinsically knotted (K7)
0 indeterminate
20
7-Vertex Graphs
853 total connected graphs
852 not intrinsically knotted
1 intrinsically knotted (K7)
0 indeterminate
Completion Times: Java 79ms ~ Ruby 505ms
20
7-Vertex Graphs
853 total connected graphs
852 not intrinsically knotted
1 intrinsically knotted (K7)
0 indeterminate
Completion Times: Java 79ms ~ Ruby 505ms
Max Per Graph Times: Java 1ms ~ Ruby 6ms
20
8-Vertex Graphs
21
8-Vertex Graphs
11,117 total connected graphs
21
8-Vertex Graphs
11,117 total connected graphs
11,095 not intrinsically knotted
21
8-Vertex Graphs
11,117 total connected graphs
11,095 not intrinsically knotted
22 intrinsically knotted
21
8-Vertex Graphs
11,117 total connected graphs
11,095 not intrinsically knotted
22 intrinsically knotted
0 indeterminate
21
8-Vertex Graphs
11,117 total connected graphs
11,095 not intrinsically knotted
22 intrinsically knotted
0 indeterminate
Completion Times: Java 1.916s ~ Ruby 36.151s
21
8-Vertex Graphs
11,117 total connected graphs
11,095 not intrinsically knotted
22 intrinsically knotted
0 indeterminate
Completion Times: Java 1.916s ~ Ruby 36.151s
Max Per Graph Times: Java 17ms ~ Ruby 2.152s
21
9-Vertex Graphs
22
9-Vertex Graphs
261,080 total connected graphs
22
9-Vertex Graphs
261,080 total connected graphs
259,055 not intrinsically knotted
22
9-Vertex Graphs
261,080 total connected graphs
259,055 not intrinsically knotted
1,993 intrinsically knotted
22
9-Vertex Graphs
261,080 total connected graphs
259,055 not intrinsically knotted
1,993 intrinsically knotted
32 indeterminate
22
9-Vertex Graphs
261,080 total connected graphs
259,055 not intrinsically knotted
1,993 intrinsically knotted
32 indeterminate
Completion Times: Java 17m53.302s ~ Ruby 3h8m49.326s
22
9-Vertex Graphs
261,080 total connected graphs
259,055 not intrinsically knotted
1,993 intrinsically knotted
32 indeterminate
Completion Times: Java 17m53.302s ~ Ruby 3h8m49.326s
Max Per Graph Times: Java 692ms ~ Ruby 55m8.123s
22
0
1
2
6
7
8
3
45
0
1
2
6
7
8
3
4
5
Example Indeterminate Graph
23
Graph 243680 Complement of 243680
Analysis & Conclusions
24
Classifications
25
Classifications
Java and Ruby versions showed identical classification results for every graph
25
Classifications
Java and Ruby versions showed identical classification results for every graph
Classification which ‘determined’ IK state was useful as ‘proof’ for the classification
25
Classifications
Java and Ruby versions showed identical classification results for every graph
Classification which ‘determined’ IK state was useful as ‘proof’ for the classification
7-vertex classifications matched published results
25
Classifications
Java and Ruby versions showed identical classification results for every graph
Classification which ‘determined’ IK state was useful as ‘proof’ for the classification
7-vertex classifications matched published results
8-vertex classifications matched published results
25
Classifications
Java and Ruby versions showed identical classification results for every graph
Classification which ‘determined’ IK state was useful as ‘proof’ for the classification
7-vertex classifications matched published results
8-vertex classifications matched published results
No published results for 9-vertex graphs for comparison, but classifications appear realistic
25
Timing
26
Timing
Ruby implementation ran slower than Java
26
Timing
Ruby implementation ran slower than Java Algorithms differed, so not a ‘language comparison’
26
Timing
Ruby implementation ran slower than Java Algorithms differed, so not a ‘language comparison’ Java implementation did not degrade as much as graph
complexity increased
26
Timing
Ruby implementation ran slower than Java Algorithms differed, so not a ‘language comparison’ Java implementation did not degrade as much as graph
complexity increased Slowest graph in Ruby took ~ 1 hour
26
Timing
Ruby implementation ran slower than Java Algorithms differed, so not a ‘language comparison’ Java implementation did not degrade as much as graph
complexity increased Slowest graph in Ruby took ~ 1 hour
majority of time spent in minor detection algorithm
26
Timing
Ruby implementation ran slower than Java Algorithms differed, so not a ‘language comparison’ Java implementation did not degrade as much as graph
complexity increased Slowest graph in Ruby took ~ 1 hour
majority of time spent in minor detection algorithm
slowest when size difference between two graphs is greatest
26
Timing
Ruby implementation ran slower than Java Algorithms differed, so not a ‘language comparison’ Java implementation did not degrade as much as graph
complexity increased Slowest graph in Ruby took ~ 1 hour
majority of time spent in minor detection algorithm
slowest when size difference between two graphs is greatest
searching for 21 and 22 edge minors in a graph of 29 edges on 9 vertices
26
32 Indeterminate Graphs
27
32 Indeterminate Graphs
Potentially a new minor minimal IK graph (progress on the ‘Big Question’)
27
32 Indeterminate Graphs
Potentially a new minor minimal IK graph (progress on the ‘Big Question’)
Left as an open area to be investigated
27
32 Indeterminate Graphs
Potentially a new minor minimal IK graph (progress on the ‘Big Question’)
Left as an open area to be investigated
Did discover that all of the 32 graphs arise from 5 minors
27
32 Indeterminate Graphs
Potentially a new minor minimal IK graph (progress on the ‘Big Question’)
Left as an open area to be investigated
Did discover that all of the 32 graphs arise from 5 minors
Personally did not take these 32 graphs any further
27
243680 244632245103 245677 256510
243683
243745 244064 245605245608
245238245246 256305
245195
255244
256363256368 256372
260922
244065
260928
245239 255220255247
255925245113
256338
260909
260624
260910
260920 260908
Expansion Map of 32 Indeterminate Graphs
243680 244632245103 245677 256510
243683
243745 244064 245605245608
245238245246 256305
245195
255244
256363256368 256372
260922
244065
260928
245239 255220255247
255925245113
256338
260909
260624
260910
260920 260908
Expansion Map of 32 Indeterminate Graphs
243680 244632245103 245677 256510
243683
243745 244064 245605245608
245238245246 256305
245195
255244
256363256368 256372
260922
244065
260928
245239 255220255247
255925245113
256338
260909
260624
260910
260920 260908
Expansion Map of 32 Indeterminate Graphs
243680 244632245103 245677 256510
243683
243745 244064 245605245608
245238245246 256305
245195
255244
256363256368 256372
260922
244065
260928
245239 255220255247
255925245113
256338
260909
260624
260910
260920 260908
Expansion Map of 32 Indeterminate Graphs
243680 244632245103 245677 256510
243683
243745 244064 245605245608
245238245246 256305
245195
255244
256363256368 256372
260922
244065
260928
245239 255220255247
255925245113
256338
260909
260624
260910
260920 260908
Expansion Map of 32 Indeterminate Graphs
243680 244632245103 245677 256510
243683
243745 244064 245605245608
245238245246 256305
245195
255244
256363256368 256372
260922
244065
260928
245239 255220255247
255925245113
256338
260909
260624
260910
260920 260908
Expansion Map of 32 Indeterminate Graphs
Future Work
29
Future Work
Investigate the 32 indeterminate graphs (especially the 5 common minors)
29
Future Work
Investigate the 32 indeterminate graphs (especially the 5 common minors)
Investigate the Absolute Size Classification which says < 15 edges is not IK because the smallest IK graph we found had 21 edges
29
Future Work
Investigate the 32 indeterminate graphs (especially the 5 common minors)
Investigate the Absolute Size Classification which says < 15 edges is not IK because the smallest IK graph we found had 21 edges
Add Intrinsic Linking Classification because if a graph is not intrinsically linked then it is not intrinsically knotted
29
Future Work
Investigate the 32 indeterminate graphs (especially the 5 common minors)
Investigate the Absolute Size Classification which says < 15 edges is not IK because the smallest IK graph we found had 21 edges
Add Intrinsic Linking Classification because if a graph is not intrinsically linked then it is not intrinsically knotted
Create an alternate approach to the same problem for assurance of accuracy
29
Future Work
Investigate the 32 indeterminate graphs (especially the 5 common minors)
Investigate the Absolute Size Classification which says < 15 edges is not IK because the smallest IK graph we found had 21 edges
Add Intrinsic Linking Classification because if a graph is not intrinsically linked then it is not intrinsically knotted
Create an alternate approach to the same problem for assurance of accuracy
Port code to C (for increased speed)
29
Future Work
Investigate the 32 indeterminate graphs (especially the 5 common minors)
Investigate the Absolute Size Classification which says < 15 edges is not IK because the smallest IK graph we found had 21 edges
Add Intrinsic Linking Classification because if a graph is not intrinsically linked then it is not intrinsically knotted
Create an alternate approach to the same problem for assurance of accuracy
Port code to C (for increased speed)
Write code in a distributed fashion like SETI@home
29
Future Work
Investigate the 32 indeterminate graphs (especially the 5 common minors)
Investigate the Absolute Size Classification which says < 15 edges is not IK because the smallest IK graph we found had 21 edges
Add Intrinsic Linking Classification because if a graph is not intrinsically linked then it is not intrinsically knotted
Create an alternate approach to the same problem for assurance of accuracy
Port code to C (for increased speed)
Write code in a distributed fashion like SETI@home
Apply tools to 10 vertex graphs and beyond
29
Demo
30
Thank You
31
Thank You
31
Dr. Tyson Henry ~ Committee Chair
Thank You
31
Dr. Tyson Henry ~ Committee Chair Dr. Thomas Mattman ~ Committee Member
Thank You
31
Dr. Tyson Henry ~ Committee Chair Dr. Thomas Mattman ~ Committee Member Dr. Robin Soloway ~ Reviewer
Thank You
31
Dr. Tyson Henry ~ Committee Chair Dr. Thomas Mattman ~ Committee Member Dr. Robin Soloway ~ Reviewer Dr. Michelle Morris ~ Supportive Wife
Thank You
31
Dr. Tyson Henry ~ Committee Chair Dr. Thomas Mattman ~ Committee Member Dr. Robin Soloway ~ Reviewer Dr. Michelle Morris ~ Supportive Wife Department of Computer Science
Thank You
31
Dr. Tyson Henry ~ Committee Chair Dr. Thomas Mattman ~ Committee Member Dr. Robin Soloway ~ Reviewer Dr. Michelle Morris ~ Supportive Wife Department of Computer Science Graduate School
Thank You
31
Dr. Tyson Henry ~ Committee Chair Dr. Thomas Mattman ~ Committee Member Dr. Robin Soloway ~ Reviewer Dr. Michelle Morris ~ Supportive Wife Department of Computer Science Graduate School Friends who pretended to be interested when I talked their
ears off about my project
Thank You
31
Dr. Tyson Henry ~ Committee Chair Dr. Thomas Mattman ~ Committee Member Dr. Robin Soloway ~ Reviewer Dr. Michelle Morris ~ Supportive Wife Department of Computer Science Graduate School Friends who pretended to be interested when I talked their
ears off about my project To all of you that showed up today!
Questions
32