{VERSION 3 0 "IBM INTEL LINUX" "3.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "" -1 256 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 257 "" 1 24 0 0 0 0 0 0 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "T" }{TEXT 256 0 "" }{TEXT 257 0 "" }{TEXT -1 87 "his is an introduction to MAPLE which is a prog ram for doing mathematics with computers" }}{PARA 0 "" 0 "" {TEXT -1 92 "(a computer algebra system). We will focus on permutations, groups , and discrete mathematics" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 54 "We work all the time with permutations S_n for so me n." }}{PARA 0 "" 0 "" {TEXT -1 59 "A PERMUTATION inside MAPLE can b e represented in two ways: " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 80 "1) As permutation list (1 ->3, 2->1,3 ->2) whic h is encoded by a list [3, 1, 2]." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 98 "2) As the product of disjoint cycles: (1, 2) (3,2,4) is encoded in a list of lists [[1,2],[3,2,4]]." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 82 "We can construct m any many groups using permutations. In fact we can construct ALL" }} {PARA 0 "" 0 "" {TEXT -1 44 "finite groups this way! Here is an examp le:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 101 " \+ The cheap_rubik box is a toy like the famous Rubik's cube. Instead of a 3x3 cube is a 3x2 box. " }}{PARA 0 "" 0 "" {TEXT -1 91 "The poi nt is that once we label the faces of cheap_rubik box we can express \+ the mechanical" }}{PARA 0 "" 0 "" {TEXT -1 98 "moves by a series of pe rmutations of 18 symbols of letters!! See picture for a description o f the" }}{PARA 0 "" 0 "" {TEXT -1 3 "toy" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 89 "The subgroup of S_18 generated by these permutations is precisely the group of operations " }}{PARA 0 "" 0 "" {TEXT -1 90 "for the cheap_rubik box. Now here is a practical problem. I give you a configuration that" }}{PARA 0 "" 0 "" {TEXT -1 92 "could in principle be a valid cheap_rubik configuratio n. How can we decided whether there" }}{PARA 0 "" 0 "" {TEXT -1 116 "are moves that really achieve it? Take for example [10, 6, 9, 11 , 5, 8, 12, 4, 7, 3, 2, 1, 13, 14, 15, 16, 17, 18]:" }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 38 "Let's begin our compute r exploration: " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 60 "Since we are beginners we can just start by asking for he lp:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "help(group);" }} {PARA 0 "" 0 "" {TEXT -1 95 "You can use this as a reference for all k inds of commands inside MAPLE. Now we call the library" }}{PARA 0 "" 0 "" {TEXT -1 52 "of commands that deals with groups and permutations. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "with(group);" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 96 "Once we have all the commands available we can define inside maple th e group of moves: These are" }}{PARA 0 "" 0 "" {TEXT -1 121 "certain ` `basic'' permutations from which any other configuration can be obtain ed. They are the generators of the group!!" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 71 "moves_rubik:=\{a=[[1,3,9,7],[2,6,8,4]], b=[[10,12,1 8,16],[11,15,17,13]]," }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 102 "c=[[1,12] ,[3,10],[2,11]],d=[[3,18],[9,12],[6,15]], e=[[9,16],[7,18],[8,17]],f=[ [7,10],[1,16],[4,13]]\};" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "cheaprubik:=permgroup(18,moves_rubik);" }}{PARA 0 "" 0 "" {TEXT -1 89 "Then we can ask questions about the group: How many elements? Is t he group Abelian?, etc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 " grouporder(cheaprubik);" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 94 "Another possibility is to ask whether an specific permutation belongs to the group CHEAPRUBIK." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "groupmember([[1,10,3,9,7,12],[2,6,8,4,11]], cheaprubik); " }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 54 "Here is the same question for a different permutation!" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 " groupmember([[1,10,11]],cheaprubik);" }{TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 81 "Here is a way of multiplying to permutation as long as \+ they are in cycle notation" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "mulperms([[2,3,4], [1,6]], [[4,6]]); " }}{PARA 0 "" 0 "" {TEXT -1 120 "Of course, it then becomes necessary to transfer between the cycl e notation and the list notation. Here is how to do it:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "convert([[2, 8, 13, 11, 4, 6, 15, 1 7], [3, 16], [7, 9], [10, 18]], 'permlist', 18);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "convert([10, 6, 9, 11, 5, 8, 12, 4, 7, 3, 2, \+ 1, 13, 14, 15, 16, 17, 18],'disjcyc');" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 135 "Now suppose you wish to decide what are the cosets of a certain subgroup ( like in the proof of Lagrange theorem!). First y ou input the" }}{PARA 0 "" 0 "" {TEXT -1 33 "group and the candidate s ubgroup:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 100 "pg1:=permgroup (4,\{[[1,2,3]],[[1,3,2]],[[1,3,4]],[[1,4,3]],[[1,2,4]],[[1,4,2]],[[2,3 ,4]],[[2,4,3]]\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "group order(pg1);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{MPLTEXT 1 0 34 "pg2:=permgroup(4,\{[[1,2],[3,4]]\});" }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 84 "But we wish first to be sure pg2 is a subgroup! Else t he calculation makes no sense." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "issubgroup(pg2,pg1);" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 80 "Finally we ask for the list of cosets to be computed. Did we ex pect that answer?" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "cosets (pg1,pg2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "0 21 0" 0 }{VIEWOPTS 1 1 0 3 2 1804 }