the permutations project at southeastern

THE PERMUTATIONS PROJECT AT
SOUTHEASTERN
Faculty:
Karl Frinkle(Math)
Charles Matthews(Math)
Chris Moretti(Math)
Mike Morris(Computer Science)
Patrick Reardon(Math)
Students:
Alberto Blesa-Gonzalez(Math)
Birch Bryant(Math)
Reid Buchanan(Math)
Jace Carpenter(PEP)
Nick Gauthier(CS)
Jacob Graham(CS)
Nathan Naylor(CS)
Keith Pearce(CS)
WHAT IS A PERMUTATION
• A permutation of {1,2 . . . , n1} is a bijection from {1,2 . . . , n1} to itself.
• The permutation τ = (12 . . . n1)k1 is the bijection defined by τ(j) = j + k1 (mod n1) for
all j.
• The Disjoint Cycle Decomposition (DCD) of a permutation is a way of writing the
permutation as a product of pairwise disjoint cycles, for example:
(1 2 3 4 5 6)3=(1 4)(2 5)(3 6)
1
2
3
4
5
6
1
2
3
4
5
6
STANDARD THEOREM FROM ABSTRACT ALGEBRA:
• The DCD of τ = (12 . . . n1) k1 consists of cycles of only one length with the
multiplicity m1 and length l1 satisfying the formulas:
m1= gcd(n1,k1)
l1=
𝑛1
gcd(𝑛1,𝑘1)
(1 2 3 4 5 6)3=(1 4)(2 5)(3 6)
WHAT WE STARTED WITH
• Charles Matthews(Southeastern) and David Wright(OSU):
• The DCD of a permutation of the form
τ = (12 . . . n1) k1 . . . (12 . . . ng) kg
consists of cycles of at most g distinct lengths.
• They use a topological proof using a surface of genus g and its Euler characteristic.
WHAT OUR GOALS ARE
• We want to determine the formulas for m1, l 1, m2, and l2 such that the DCD of
τ = (12 . . . n1) k1 (12 . . . n2) k2
consists of m1 cycles of length l1 and m2 cycles of length l2.
• More generally, our goal is to find formulas for all the mi cycles of length li such that
the DCD of
τ = (12 . . . n1) k1 . . . (12 . . . ng) kg
consists of mi cycles of length li for 1 ≤ i ≤ g.
THE APPROACHES WE HAVE TRIED
• Pattern Recognition
• Simple Cases
• High Performance Computing
• Data Analysis
• Linear Algebra
• ETC.
PATTERN RECOGNITION
N1 = 2k1+k2
SIMPLE CASES
HIGH PERFORMANCE COMPUTING
• What are our goals using HPC?
• Data Creation
• Data Analysis
• Parser
• Testing Conjecture
• Web Page
WHAT ARE OUR GOALS USING HPC?
• Test Conjectures
• Determine Patterns
• Make Life Easier
DATA CREATION
• Our ability to create data
significantly increased as we
learned how to improved our
code design.
Ex: It took us a month to create
500 Million data points.
Now, it takes about 2 minutes
to create the same amount of
data.
THE SIZE AND DISTRIBUTION OF OUR DATA
start n1
10
10
10
10
stop n1
110
350
410
560
NODE
small
medium
large
x-large
compute-0-0
3198204
103218684
643957824
2250406380
compute-0-1
3162024
102778650
642163224
2245605054
compute-0-3
3158070
102519528
640259280
2238478836
compute-0-4
3227820
103217736
642891912
2245072806
compute-0-8
3159084
102633102
641583372
2244225096
Total Cycles
15905202
514367700
3210855612
11223788172
DATA ANALYSIS - PARSER
• We created a parser that takes a formula, and converts it into our defined math
language for our calculator.
EX: The sentence: if k1 = 1 then gcd(n2,k2) = 1
would look like this: ->(=(k1, 1),=(gcd(n2,k2), 1))
which, our parser converts to: 293502133522030413
for our calculator.
DICTIONARY
->(=(k1, 1),=(gcd(n2,k2), 1))
293502133522030413
CALCULATOR
->(=(k1, 1),=(gcd(n2,k2), 1))
->
=
k1
=
1
1
gcd
n2
k2
DATA ANALYSIS – TESTING CONJECTURES
• The program takes our parsed formulas and returns values relevant to our data.
DATA ANALYSIS
bool X[18]={}
0≤Xi≤17
bool Y[16]={}
0≤Yi≤15
bool Z[18]={}
0≤Zi≤17
WHAT’S NEXT
Y[0]=1;
X[0]=1;
Z[0]=1;
int cube[18][16][18]={0};
For(all data points)
{
For(all Xi , Yi, and Zi values)
{
Cube[Xi][Yi][Zi]+=X[Xi]*Y[Yi]*Z[Zi];
}
}
Mixed values
Post values
Pre values
WHAT ARE WE LOOKING FOR
• We are looking for values that meet the condition
Cube[Xi][0][0]==Cube[Xi][Yi][Zi]
then we get a conditional statement of If pre formula Xi then post formula and
mixed formula Zi.
DATA ANALYSIS – WEB PAGE
• http://cumulonimbus.se.edu/cycle.php
OUR 2007 CLUSTER
Plywood Layer
2009 SAME THING NEW RACK
Look! No Plywood!
2014 THREE JUNKY CLUSTERS
TODAY
THE DIFFERENCE TEN YEARS CAN MAKE
WHERE WE’RE MOVING TO