Introduction to the PascGalois JE Applets
So what is PascGalois JE? The PascGalois project was started in the late 1990's
as a new and innovative way to visualize concepts in an introductory abstract algebra course,
primarily group theory. Although this is still its main function the project has branched out into
areas of number theory, discreet mathematics, dynamical systems and combinatorics. In 2004, the software was
totally rewritten in Java so that it could run on any operating system, not just Windows. Furthermore,
we revamped the user interface to make the program easier to use and built a rule-based calculation
engine so that the program will support more types of group structures. Since the first release of
PascGalois JE we have revised the user interface several times and have added many new features,
such as three-dimensional viewing of two-dimensional automata, advanced element counting,
generalized update rule input, and probability density graphing of two-dimensional automata.
As with any program, when you add more and more options the user interface gets more complicated
and the ease of use decreases. We have tried to make this program as easy to use a possible by
using a tabbing system.
Although we still use the program for our first course in abstract algebra you may feel that the
PascGalois JE program has become more of an undergraduate research tool instead of a teaching tool.
This is why we have also constructed a series of easier to use applets. The applets restrict
the options that the user has and as the series progresses the applets introduce new options at each
stage. By the end of the series the user has used most of the facilities on the PascGalois JE
program.
So which should you use? The sequence of written labs we have constructed use the
PascGalois JE program and the sequence of web-based labs embed the applets in the lab itself.
So if you want to use the full set of
features from the start you should use this sequence of labs with the PascGalois JE
program. On the other hand, if you are finding the PascGalois JE program too cumbersome to use
you should use our web-based sequence of labs. There are a few things you should note about the applets.
First, each of the applets have corresponding applications that can be downloaded from our
web site. Second, applets can not access the user's hard drive nor can they access the computer
clipboard. This means that if you use the applets you will not be able copy images to a word processor
nor will you be able to save the current settings of the program. So if you are writing up a lab
report and using the PascGalois JE program you will be able to transfer images and information
over to your word processor. On the other hand, if you are using the web-based labs with the applets
the only way to transfer the image to your word processor is to open the the applet in full screen mode
and do a screen capture (Alt+PrintScreen in Windows) and then paste this into your word processor.
So what does it do? It graphs one and two-dimensional cellular automata over finite group
structures. Here is an easy example of a one-dimensional cellular automaton.
Consider Pascal's triangle and its construction using the "adding the two entries above"
rule. That is, put 1's down the diagonals and for each entry inside the triangle add the
two entries above it. You will get the following,
Another way to think about this is to consider the first row (the single 1) as a starting point
(or seed) with 0's going out infinitely in both directions. That is,
... 0 0 0 1 0 0 0 0 0 ...
In the language of cellular automata we call this time-step 0. The next row, or time-step 1,
is taken from the first row by adding each two consecutive entries together, obtaining
... 0 0 0 1 1 0 0 0 0 ...
we do it again for time-step 2,
... 0 0 0 1 2 1 0 0 0 ...
time-step 3,
... 0 0 0 1 3 3 1 0 0 ...
time-step 4,
... 0 0 0 1 4 6 4 1 0 ...
and so on.
Now we will go a little further, we will take each of the entries mod a particular
number n. For example, let n = 3, generate Pascal's triangle and then mod each entry by 3.
You should note that this is exactly the same as if were were to generate Pascal's triangle
using addition mod 3. That is, start with your seed of
... 0 0 0 1 0 0 0 0 0 ...
Now do the addition rule but after each addition take the result mod 3. For time-steps 1 and 2 it makes
no difference we still get
... 0 0 0 1 1 0 0 0 0 ...
and
... 0 0 0 1 2 1 0 0 0 ...
Now for time-step 3 we have,
... 0 0 0 1 0 0 1 0 0 ...
and time-step 4,
... 0 0 0 1 1 0 1 1 0 ...
and so on. The point is that we are still constructing Pascal's triangle we are just using
the group operation of Z3 instead of addition (which is the group operation of Z).
Yes, we are going yet another step further. Numbers are nice but in this form it is a bit
difficult to see patterns. So what we will do now is color each entry of the triangle a color that
corresponds to the group element. If we color 0 red, 1 black and 2 green and graph about 100 rows
or time-steps we get the following image.
Clearly we have some structure here. What you will see in this sequence of labs is that these triangles
can hold far more information about the structure of the group.
The PascGalois Project and the PascGalois JE program derive their names from Pascal and Galois since the
first visualizations were using Pascal's triangle with group theoretic operations (the Galois portion of the
name). The PascGalois JE program is capable of producing automata using many other group structures as well as
other seeds and update rules, it is not restricted to Pascal's triangle.
For this lab we will stick to Zn and Pascal's triangle.
Before going into the software let's get a feel for what it is doing.
Your first assignment is to create some of these triangles by hand.
Exercises:
- By hand generate the first 10 rows of Pascal's triangle.
- By hand generate the first 10 rows of Pascal's triangle, mod 2.
- By hand generate the first 10 rows of Pascal's triangle, mod 3.
- By hand generate the first 10 rows of Pascal's triangle, mod 4.
- By hand generate the first 10 rows of Pascal's triangle, mod 5.
- By hand generate the first 10 rows of Pascal's triangle, mod 6.
- For each of the triangles mod 2, 3, 4, 5 and 6, above use different colors
to color in the triangle. We have constructed an
empty triangle to help make this easier.
We would suggest using some type of painting program to fill in the triangles
and then copy anf paste the result into your lab report.
Note that you should only color the triangles that point upward.
An Introduction to the First Applets
To get you started we are going to look at just the first sequence of applets.
The first applets are restricted to graphing one-dimemsional automata using
the Pascal's triangle update rule over only one class of groups. So they
will create images like the one above but for a specific group. For example,
the applet to the right will graph the one-dimemsional automata over
Zn. There are other applets that will use Dn,
Sn, .... The applets in this series have facilities for color
scheme alteration, zooming and element counting. When we embed an applet into
the labs we will usually have links to a full screen version and the help
system for the applet. The full screen versions will open the applet up in another
window that is resizeable so you can enlarge the viewing area. Furthermore, you
may wish to use the full screen mode to copy and paste images from the applets into
your lab reports. You can also click the full screen link several times to open
several of these applets at once.
Some basics about triangle generation
We are going to start out with Pascal’s triangle modulo 2, 3, 4, 5 and 6.
- Since this applet graphs Zn we need to input the
value of 2 for n.
At the top of the applet you will see an "n =" box simply input a 2 into this
box. (2 is the default entry so you will probably not need to do anything here)
- We also need to give the program seed values. This series of applets uses a
default of two seeds, mainly because most of the groups encountered in an introductory
abstract algebra course have either one or two generators. We can force the
program to use only one seed by leaving one of the seed entries blank. So
to start with a seed of 1 (like our examples above) we would put a 1 in one of the
seed boxes and leave the other box blank. Change the seed entries so that there is a
1 in one box and nothing in the other.
- The number of rows tells the program how many rows (or time-steps) of the
automaton should be generated after the seed row. So if this is set
to 100 the image will actually contain 101 rows. We will leave this entry
at 100.
- The creation and graphing of one of these triangles can be a little time
consuming if there are a large number of rows to create, so when we
wrote the software we did not have the automaton regraph every thime a change
was made. So to create or update an image you must click the Refresh/Apply
tool button in the upper right corner of the applet. Try this. Notice that the image
appears in the box on the left and the color correspondence in the
box on the right. Also note that the division bar between these two boxes
is movable.
- Change the number of rows to 9 and regraph the image. Compare this
image with your mod 2 Pascal’s triangle.
- Move your mouse over the image and notice what appears in the status bar
at the bottom. The program tells you what location the element is in as
well as what the element is. Furthermore, if you hover over a location for a
second or two a tool tip will appear with the same information.
- Change n to 3 and regraph the image. Compare this
image with your mod 3 Pascal’s triangle. Do the same with n set to 4, 5
and 6.
- Now set the number of rows to 200 and regraph the images with n set to
2, 3, 4, 5 and 6. Do you notice any patterns? If so, how would you describe them?
Some basics about colorings
Often our choice of coloring affects the type and/or amount of structure we observe in Pascal’s and other
related triangles. We will see that altering the colors often reveals hidden structure in the images.
When you generate a triangle the program will use the default color settings and color each element a
unique color (up to 60 elements and then it rotates the color scheme). The program allows you to change
the color of any element as well as group sets of elements together with the same color. We will look at a few
examples below. There is also a feature where you can drag and drop colors from one window to another.
Unfortunately, with the applets you will not be able to save your color schemes
since applets do not have access to the user's hard drive. The PascGalois JE
application does have the ability to save and load the color schemes that you create.
- Generate Pascal’s triangle modulo six, keep the number of rows at the default 100.
- Just to see how to change the color of an individual color do the following.
Double-click the element 3 either on the image or the element list.
At this point the color chooser dialog box will appear.
Select a purple color and click OK.
You will notice that the color has changed in the color correspondence
box. Now click the Refresh/Apply toolbar button. Notice what happened to the triangle
image.
- To reset the colors to the default scheme select the Colors > Reset to Default
Color Scheme in the menu.
- Now we will highlight colors. Select both 3 and 5 from the color correspondence.
To select multiple items simply hold down the Control key and click all the
items of interest. Now select Colors > Highlight Elements from the menu.
You will notice that the elements that were selected are now
colored red and the other elements are black. Let’s change these colors
before refreshing the image.
Double-click either the 3 or the 5 and select the color yellow.
Now double-click any of the black colors
and select a gray color. Notice that all of the colors in the respective groups
changed when you made
a single change. This is because the elements are now linked together.
The 3 and 5 are considered a
set and the 0, 1, 2 and 4 are a set. Refresh the image.
- To ungroup the colors select Colors > Reset to Default Color Scheme from
the menu and refresh the image.
- We will use another type of color grouping, subset grouping. In the
color correspondence window select
the numbers 0 and 3. Select Colors > Group Elements from the menu.
Note that 0 and 3 are now the
same color. Now select 1 and 4 and then select the Colors toolbar
button followed by Group Elements.
Finally select 2 and 5 followed by the Colors toolbar button and
then Group Elements. Refresh the graph.
- Reset the colors to the default scheme and refresh the image.
- You can also use the PascGalois triangle itself to select colors.
Put the mouse over a section of red
(the element 0) and double click. The color selector will appear for the element 0.
Select a different
color and click OK. Note that the new color is in the color correspondence box.
Refresh the image to see the new triangle.
- Another way to change an element’s color is to right-click on the element
either in the color correspondence
box or on the image and a small popup menu will appear with
two options, Set Element Color
and Set Element Color to Transparent. If you select the transparent
option the color box will simply
be a rectangle with an X through it. Refresh the image to see the change.
You can also change the
background color by selecting Colors > Set Background Color.
- A few other things to note about color changes. There are several other
grouping options under the
Colors menu, we will use these in later labs. Also, there are options
to undo and redo color scheme
changes. The program will keep up to 20 changes for each color scheme.
There are also facilities to
add, remove and rename color schemes. If you do add color schemes
you can select the different color
schemes using the drop-down selector over the color
scheme window.
Some basics about zooming
- If you don’t have Pascal’s triangle modulo six on the screen please
regenerate it, keep the number of rows at the default 100.
- Select Zoom > Zoom In from the menu. Notice that the mouse pointer has
changed when you are
in the triangle window. Click somewhere inside the triangle.
Click several more times to see what happens.
- Select Zoom > Zoom Out from the menu. Notice that the mouse pointer has
changed again. Click
somewhere inside the triangle. Click several more times to see what happens.
- Select Zoom > Reset Zoom to Full View from the menu. Notice that the mouse
pointer has not changed but the triangle has zoomed out to its fullest.
- Select Zoom > Turn Off Zoom from the menu. Notice that the mouse pointer
has changed back to its default.
- The default zoom is 2X. This can be changed by selecting Zoom > Zoom Factor
from the menu followed by the desired zoom factor.
- Select Zoom > Zoom Box from the menu.
- Click and drag over a portion of the triangle. Note that the area will be
shaded. Release the mouse
button and the program will zoom in on the selected portion.
The program may need to alter the
bounds of the selection but you will get at least what you selected.
- If you are in the process of zooming with the Zoom Box feature and
notice that your area is not what
you want you can cancel the zoom by pressing the right mouse button before
releasing the left button. Give this a try.
- Reset the zoom to full view and turn the zooming off.
- There are also facilities to undo and redo zooms. The program will keep
a maximum of 50 zooms in memory.
Some basics about element counting
These applets also have a feature for counting the number of elements
within a given selected region. This option was put in mainly for fractal
dimension explorations in a dynamical systems course. We will not be using
this feature in our sequence of abstract algebra labs so we will not
go into this feature. If you are interested in fractals and fractal dimension
please read the section on counts in the help system.
Other applets in this first series
The applet above was for generating triangles over Zn.
We also have applets in this first seires to generate applets over
Un (the integers under multiplication mod n),
Zn X Zm (the Cartesian product of
Zn and Zm both under addition)
Dn (symmetry group for a regular n-gon),
Q (the Quaternions),
Sn (group of permutations on n letters),
Qn (generalized Quaternion groups) and
Cn (the dicyclic group).
These applets have the same features as the Zn applet,
the only difference is in the notation for the seed values. For a
detailed description of the element notation for these applets please see
the help system for the applet.
An Introduction to the Other Applets
As we pointed out in the introduction there are a sequence of applets
that keep adding more and more features. As the labs progress we will
be using these applets. We have a general applet page on this site that lists all of
the applets but we will give a quick description of the features of them here.
- The Single Group Viewers. These are the ones in this first series. They are restricted
to a single class of groups and the Pascal's triangle update rule. They have options
for zooming, color manipulation and element counting.
- Viewers with Group and Seed Options. There are two applets here one the uses
two seed values and one that uses a seed table. They both add a group
selection facility so that you can select the class of group you wish to work with.
Hence you do not need two seprate applets to work with two different groups.
The group selection also adds two types of groups not found in the first series.
One is a user defined structure where the user can input their own
group structure using an operation table. Actually, the operation table does not
even need to define a group. The other is an advanced group input which
allows the user to input any Cartesian product or quotient group that can be derived
from the built-in group structures or the user input structures. The applet
that uses two seed values is just like the first series and the seed table applet
allows the user to input more than one or two seed values. The update rule for these
applets is still the Pascal's triangle update rule and they have all of the other
options that the first series has.
- Viewers with Group, Seed and Update Rule Options. There are two applets
in this group as well. The first has all of the options of the seed table applet
above but adds the ability to graph finite automata as well. The second adds on to
this by allowing the user to change the update rule.
- Viewers with Full Options. There are three applets in this group. These have
almost all of the options that the PascGalois JE application has to offer. Some things
that PascGalois JE will do but these applets will not are three-dimensional
viewing of two-dimensional automata and advanced counting of sub-triangles and
sub-pyramids. The three applets in this group are the 1-D Automaton Viewer, the
2-D Automaton Viewer and the 1-D and 2-D Automaton Viewer. The 1-D Automaton Viewer
graphs only one-dimensional automata (like all of the previous applets) but it adds
an advanced counting, period and death calculation facility as well as a group
calculator. The 2-D Automaton Viewer is for the creation of two-dimensional
automata over finite groups. It has many of the same features as the
1-D Automaton Viewer but will graph levels (or time-steps) of two-dimensional
automata.
- Superimposer. This applet is a specilaized applet that is used in
one of the Abstract Algebra labs.
- Group Calculator. This applet is simply a group operation calculator
with the added features of subgroup generation and coset generation.