(************** Content-type: application/mathematica ************** Mathematica-Compatible Notebook This notebook can be used with any Mathematica-compatible application, such as Mathematica, MathReader or Publicon. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. *******************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 61182, 2844]*) (*NotebookOutlinePosition[ 62042, 2875]*) (* CellTagsIndexPosition[ 61998, 2871]*) (*WindowFrame->Normal*) Notebook[{ Cell[TextData[{ " ", StyleBox["from", FontSlant->"Italic", FontColor->GrayLevel[0.333318]], StyleBox[" \n Exploring Neural Networks with ", FontColor->GrayLevel[0.333318]], StyleBox["Mathematica", FontSlant->"Italic", FontColor->GrayLevel[0.333318]], StyleBox["\.aa \n \[Copyright] Jacques J. Vidal, 1990", FontColor->GrayLevel[0.333318]], "" }], "Subtitle", TextAlignment->Left, AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}, FontSize->12], Cell["Self-Organizing Networks", "Section", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}, FontSize->12], Cell["Self-Organizing (Kohonen) Maps with linear units", "Subsection", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ "References for this Notebook:\nKohonen, T., ", StyleBox["Self-Organization and Associative Memory", FontWeight->"Plain", FontSlant->"Italic"], ", ", StyleBox["Springer Verlag, Berlin, 1984\n", FontWeight->"Plain"], "Fort, J.C.", StyleBox[", ", FontWeight->"Plain"], StyleBox["Solving a combinatorial Problem via Self-Organizing Process: An \ Application of the Kohonen Algorithm to the Traveling Salesman Problem", FontWeight->"Plain", FontSlant->"Italic"], StyleBox[", Biol. Cybern., 59, p.33-40, 1988.", FontWeight->"Plain"] }], "Subsubsection", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["Informal Problem Statement:", "Subsubsection", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["\<\ We will explore the dynamics of self-organization and map formation in linear \ units. \ \>", "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["Network Architecture", "Subsubsection", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ "The network consists of an array of ordered units or cells, each with ", StyleBox["m", FontWeight->"Bold"], " inputs. The array is viewed as a ", StyleBox["map", FontSlant->"Italic"], ". One- and two-dimensional maps are particularly useful but higher \ dimensional arrays can be considered as well. Each cell independently \ receives the same m-dimensional input vectors.\n" }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ "Learning Rule: ", StyleBox["Adjust only the Winning Cell and its immediate neighbor", FontWeight->"Plain"], "s" }], "Subsubsection", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ "In the simplest version of the algorithm proposed by Kohonen, upon \ receiving each data sample, the position in the array of the ", StyleBox["maximally responding cell", FontSlant->"Italic"], " , i.e., the cell whose weight vector most closely resembles the data \ vector, will be identified. The learning process requires that winning cell \ ", StyleBox["and its immediate neighbors ", FontSlant->"Italic"], " adjust the weights in such a way as to reduce the difference between \ their weight vector and the data vector. The amount of reduction applied to \ neighbors decreases with distance from the winning cell. \n\nAfter repeated \ iterations, the locations of the peak responses will be\n \t1) correctly \ ordered,\n 2) distributed (mapped) in a smooth fashion, \n (the \ distribution will approximate the probability distribution of the data (to \ the extent that it was revealed by the samples drawn during the iterations)\n \ 3) contracted around the mean of the distribution. \n The amount of \ contraction varies inversely with the variability of the input data.\n After \ global convergence, the process will continue to show small fluctuations \ since each data sample will disturb the distribution slightly. The process \ may be terminated whenever a \"satisfactory\" level of spatial organization \ has been reached. What constitutes a satisfactory solution depends of \ course on a particular application. In practice, best results are obtained \ when the amount of correction applied is decreased progressively during the \ iterations while at the same time the extent of the neighborhood is narrowed.\ \nThis learning rule involves a global operation, namely, the localization \ of the maximally responding cell. This may be inappropriate in some \ applications and can be obviated by providing lateral connections between \ neighboring cells with positive (excitatory) weights (for the near neighbors) \ that become negative (inhibitory) as distance increases. " }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["Retrieval (Execution) Rule:", "Subsubsection", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ "In the retrieval or execution phase, data is applied to all units in \ parallel. In the absence of lateral connections, the units respond \ individually and independently of one another. \n\"Retrieval\" consists of \ observing the ", StyleBox["position", FontSlant->"Italic"], " of the cell responding maximally on the map constituted by the cell \ array. This position topologically identifies the input vector parameters. \ " }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["Input Data - Uniform Distribution", "Subsubsection", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ "In this notebook the cells have two input ports, but the corresponding \ data vector is constrained to have ", StyleBox["unit length", FontWeight->"Bold"], ". The angular position theta of this vector around the unit circle will be \ the only independent parameter. Thus the input domain is one-dimensional and \ can be visualized as points on the circle.\nFor instance: " }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[CellGroupData[{Cell["\<\ angle=N[Pi (2 Random[]- 1)] datum={Cos[angle],Sin[angle]}\ \>", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[OutputFormData["\<\ 2.142496226304260852\ \>", "\<\ 2.1425\ \>"], "Output", ImageRegion->{{0, 1}, {0, 1}}], Cell[OutputFormData["\<\ {-0.5410624154233887628, 0.840982438946383875}\ \>", "\<\ {-0.541062, 0.840982}\ \>"], "Output", ImageRegion->{{0, 1}, {0, 1}}]}, Open]], Cell["Network ", "Subsubsection", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ "We now establish a one-dimensional array of cells by creating an (", StyleBox["numData", FontWeight->"Bold"], " x ", StyleBox["2", FontWeight->"Bold"], ") array of ", StyleBox["weightVectors", FontFamily->"Courier", FontWeight->"Bold"], " for the two inputs. \nThe initial values for the weights will be chosen \ as random angles around the circle and will form vectors of unit length, \ directly comparable to the data vectors." }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["\<\ Clear[u] u:=N[Pi(2 Random[]- 1)]\ \>", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[CellGroupData[{Cell["\<\ numData =20 weightAngles=Table[u, {numData}]; Short[ weightVectors=Transpose[{Cos[weightAngles],Sin[weightAngles]}]]\ \>", "Input", PageWidth->PaperWidth, AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[OutputFormData["\<\ 20\ \>", "\<\ 20\ \>"], "Output", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[OutputFormData["\<\ Short[{{-0.5988354266432329156, -0.8008721070164806342}, {0.7617253208535689307, -0.6479000969057864443}, {0.5785892940697837348, -0.8156190463616144126}, {0.9972126216079357567, -0.07461224635291407879}, {-0.2909885567157051194, 0.956726533477832873}, {-0.2410320897687226433, 0.9705171465263879765}, {-0.5556601421146418229, 0.8314095299340368113}, {-0.2111483768519151138, 0.9774540208893723905}, {-0.9817045665963839921, -0.1904104616973706808}, {-0.6029160156223729583, -0.797804661622155807}, {0.5249278856398718553, 0.8511467058490290693}, {0.7182484048127536719, -0.6957867697678181118}, {-0.9869423282741861138, -0.1610740223025694898}, {0.1998526217689191754, -0.97982596902311654}, {0.9999736977645397356, -0.007252846276665271363}, {-0.6516839424931891749, 0.7584906321745402443}, {-0.7865668554230200584, 0.6175051270636883229}, {0.7118250376208863916, 0.7023568294079752688}, {0.09019684343657100527, -0.9959239576564461269}, {0.4255903223810587604, 0.9049159505145140685}}]\ \>", "\<\ {{-0.598835, -0.800872}, <<18>>, {0.42559, 0.904916}}\ \>"], "Output", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}]}, Open]], Cell[TextData[{ "According to the learning rule, for each presentation of a datum vector, \ the adjustment can be pictured as a ", StyleBox["rotation", FontSlant->"Italic"], " of the winning cell and also, but to a lesser extent, of its neighbors, \ ", StyleBox["toward", FontSlant->"Italic"], " the datum vector.\nThe amount of \"pull\" must decrease with distance.\n\ We will choose a ", StyleBox["pullProfile", FontWeight->"Bold"], " function of distance that describes the relative amount of weight \ modification imposed on the neighbors . \nWe will choose an ", StyleBox["even", FontSlant->"Italic"], " function with ", StyleBox["value one at distance zero", FontSlant->"Italic"], " and monotonically decreasing with the absolute value of distance. \nA \ simple exponentially decaying function will do. The parameter ", StyleBox["spread", FontWeight->"Bold"], " will let us adjust the extent of interaction. We plot the function with \ ", StyleBox["spread=0.5.", FontWeight->"Bold"] }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["\<\ Clear[y, distance,spread,pullProfile] pullProfile[y_, spread_] := Exp[ -spread Abs[y] ]\ \>", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[CellGroupData[{Cell["\<\ Plot[pullProfile[distance, .5], {distance,-8,8},PlotRange->{0,1},AxesOrigin->{0,0}]\ \>", "Input", PageWidth->PaperWidth, AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: 0.61803 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.5 0.0595238 0 0.618034 [ [(-7.5)] 0.05357 0 0 2 Msboxa [(-5)] 0.20238 0 0 2 Msboxa [(-2.5)] 0.35119 0 0 2 Msboxa [(0)] 0.5 0 0 2 Msboxa [(2.5)] 0.64881 0 0 2 Msboxa [(5)] 0.79762 0 0 2 Msboxa [(7.5)] 0.94643 0 0 2 Msboxa [(0.2)] 0.4875 0.12361 1 0 Msboxa [(0.4)] 0.4875 0.24721 1 0 Msboxa [(0.6)] 0.4875 0.37082 1 0 Msboxa [(0.8)] 0.4875 0.49443 1 0 Msboxa [(1)] 0.4875 0.61803 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 0.61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave gsave 0.002 setlinewidth 0.05357 0 moveto 0.05357 0.00625 lineto stroke grestore [(-7.5)] 0.05357 0 0 2 Mshowa gsave 0.002 setlinewidth 0.20238 0 moveto 0.20238 0.00625 lineto stroke grestore [(-5)] 0.20238 0 0 2 Mshowa gsave 0.002 setlinewidth 0.35119 0 moveto 0.35119 0.00625 lineto stroke grestore [(-2.5)] 0.35119 0 0 2 Mshowa gsave 0.002 setlinewidth 0.5 0 moveto 0.5 0.00625 lineto stroke grestore [(0)] 0.5 0 0 2 Mshowa gsave 0.002 setlinewidth 0.64881 0 moveto 0.64881 0.00625 lineto stroke grestore [(2.5)] 0.64881 0 0 2 Mshowa gsave 0.002 setlinewidth 0.79762 0 moveto 0.79762 0.00625 lineto stroke grestore [(5)] 0.79762 0 0 2 Mshowa gsave 0.002 setlinewidth 0.94643 0 moveto 0.94643 0.00625 lineto stroke grestore [(7.5)] 0.94643 0 0 2 Mshowa gsave 0.001 setlinewidth 0.08333 0 moveto 0.08333 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.1131 0 moveto 0.1131 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.14286 0 moveto 0.14286 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.17262 0 moveto 0.17262 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.23214 0 moveto 0.23214 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.2619 0 moveto 0.2619 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.29167 0 moveto 0.29167 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.32143 0 moveto 0.32143 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.38095 0 moveto 0.38095 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.41071 0 moveto 0.41071 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.44048 0 moveto 0.44048 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.47024 0 moveto 0.47024 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.52976 0 moveto 0.52976 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.55952 0 moveto 0.55952 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.58929 0 moveto 0.58929 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.61905 0 moveto 0.61905 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.67857 0 moveto 0.67857 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.70833 0 moveto 0.70833 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.7381 0 moveto 0.7381 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.76786 0 moveto 0.76786 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.82738 0 moveto 0.82738 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.85714 0 moveto 0.85714 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.8869 0 moveto 0.8869 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.91667 0 moveto 0.91667 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.02381 0 moveto 0.02381 0.00375 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0 moveto 0.97619 0.00375 lineto stroke grestore gsave 0.002 setlinewidth 0 0 moveto 1 0 lineto stroke grestore gsave 0.002 setlinewidth 0.5 0.12361 moveto 0.50625 0.12361 lineto stroke grestore [(0.2)] 0.4875 0.12361 1 0 Mshowa gsave 0.002 setlinewidth 0.5 0.24721 moveto 0.50625 0.24721 lineto stroke grestore [(0.4)] 0.4875 0.24721 1 0 Mshowa gsave 0.002 setlinewidth 0.5 0.37082 moveto 0.50625 0.37082 lineto stroke grestore [(0.6)] 0.4875 0.37082 1 0 Mshowa gsave 0.002 setlinewidth 0.5 0.49443 moveto 0.50625 0.49443 lineto stroke grestore [(0.8)] 0.4875 0.49443 1 0 Mshowa gsave 0.002 setlinewidth 0.5 0.61803 moveto 0.50625 0.61803 lineto stroke grestore [(1)] 0.4875 0.61803 1 0 Mshowa gsave 0.001 setlinewidth 0.5 0.02472 moveto 0.50375 0.02472 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.04944 moveto 0.50375 0.04944 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.07416 moveto 0.50375 0.07416 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.09889 moveto 0.50375 0.09889 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.14833 moveto 0.50375 0.14833 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.17305 moveto 0.50375 0.17305 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.19777 moveto 0.50375 0.19777 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.22249 moveto 0.50375 0.22249 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.27193 moveto 0.50375 0.27193 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.29666 moveto 0.50375 0.29666 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.32138 moveto 0.50375 0.32138 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.3461 moveto 0.50375 0.3461 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.39554 moveto 0.50375 0.39554 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.42026 moveto 0.50375 0.42026 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.44498 moveto 0.50375 0.44498 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.46971 moveto 0.50375 0.46971 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.51915 moveto 0.50375 0.51915 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.54387 moveto 0.50375 0.54387 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.56859 moveto 0.50375 0.56859 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.59331 moveto 0.50375 0.59331 lineto stroke grestore gsave 0.002 setlinewidth 0.5 0 moveto 0.5 0.61803 lineto stroke grestore grestore 0 0 moveto 1 0 lineto 1 0.61803 lineto 0 0.61803 lineto closepath clip newpath gsave gsave 0.004 setlinewidth 0.02381 0.01132 moveto 0.06349 0.0158 lineto 0.10317 0.02205 lineto 0.14286 0.03077 lineto 0.18254 0.04294 lineto 0.22222 0.05993 lineto 0.2619 0.08364 lineto 0.30159 0.11673 lineto 0.34127 0.16291 lineto 0.38095 0.22736 lineto 0.42063 0.31731 lineto 0.46032 0.44284 lineto 0.48016 0.52315 lineto 0.49008 0.56862 lineto 0.49504 0.59281 lineto 0.49752 0.60529 lineto 0.49876 0.61163 lineto 0.5 0.61803 lineto 0.50248 0.60529 lineto 0.50496 0.59281 lineto 0.50992 0.56862 lineto 0.51984 0.52315 lineto 0.53968 0.44284 lineto 0.57937 0.31731 lineto 0.61905 0.22736 lineto 0.65873 0.16291 lineto 0.69841 0.11673 lineto 0.7381 0.08364 lineto 0.77778 0.05993 lineto 0.81746 0.04294 lineto 0.85714 0.03077 lineto 0.89683 0.02205 lineto 0.93651 0.0158 lineto 0.97619 0.01132 lineto stroke grestore grestore % End of Graphics MathPictureEnd\ \>"], "Graphics", ImageSize->{250, 156}, ImageMargins->{{89, Inherited}, {Inherited, Inherited}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCacheValid->False], Cell[OutputFormData["\<\ The Unformatted text for this cell was not generated. Use options in the Actions Preferences dialog box to control when Unformatted text is generated.\ \>", "\<\ -Graphics-\ \>"], "Output", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}]}, Open]], Cell[TextData[{ "To get a discrete set of influence coefficients to apply to the cell \ array,", StyleBox[" ", FontWeight->"Bold"], "we make a table of the pullProfile function, with an odd number of \ entries, centered on the zero distance (the winning cell). The parameter ", StyleBox["pullExtent", FontWeight->"Bold"], " sets the number of neighbors on each side of the winning cell that will \ receive an adjustment" }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["\<\ pullExtent = 4; spread=0.5;\ \>", "Input", ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ "To apply the adjustment in parallel to the whole array of cells, we need \ to insert these influence coefficients into an array of length ", StyleBox["numData", FontWeight->"Bold"], ". Most of the entries will be zero since only the immediate neighbors are \ affected. " }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[CellGroupData[{Cell["\<\ mask = Join[ Table[ \t\t\t\t\tpullProfile[distance,spread],{distance,-pullExtent, \t\t\t\t\tpullExtent}], \t\t\t\t\tTable[0,{numData-2*pullExtent-1}] ] \ \>", "Input", PageWidth->PaperWidth, AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[OutputFormData["\<\ {0.1353352832366126919, 0.223130160148429829, 0.367879441171442322, 0.6065306597126334232, 1, 0.6065306597126334232, 0.367879441171442322, 0.223130160148429829, 0.1353352832366126919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}\ \>", "\<\ {0.135335, 0.22313, 0.367879, 0.606531, 1, 0.606531, 0.367879, 0.22313, 0.135335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}\ \>"], "Output", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}]}, Open]], Cell[TextData[{ "Finally, to facilitate subsequent indexing, we rotate this array to place \ the maximum value (unity) in the first position. During the calculations, \ it will be shifted by the amount necessary to bring it into alignment with \ the \"winning\" cell, i.e., the cell displaying the maximum ", StyleBox["netInput", FontWeight->"Bold"], "." }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[CellGroupData[{Cell["pullFactors =RotateLeft[mask , pullExtent] ", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[OutputFormData["\<\ {1, 0.6065306597126334232, 0.367879441171442322, 0.223130160148429829, 0.1353352832366126919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1353352832366126919, 0.223130160148429829, 0.367879441171442322, 0.6065306597126334232}\ \>", "\<\ {1, 0.606531, 0.367879, 0.22313, 0.135335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.135335, 0.22313, 0.367879, 0.606531}\ \>"], "Output", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}]}, Open]], Cell["Let us check the length of the new array", "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[CellGroupData[{Cell["Length[pullFactors]==numData", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[OutputFormData["\<\ True\ \>", "\<\ True\ \>"], "Output", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}]}, Open]], Cell["Network Learning", "Subsubsection", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ "We will first run one iteration of the network and analyse each step. \n\ First we generate one data item, ", StyleBox["datum", FontWeight->"Bold"], ", and look at the \"net inputs\" (the weighted sums) it produces in the \ cells of the array." }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[CellGroupData[{Cell["\<\ theta=u; \tdatum= N[{Cos[theta],Sin[theta]}]; \tShort[netInputs = weightVectors.datum] \ \>", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[OutputFormData["\<\ Short[{-0.5372367629751502098, -0.8754746256260281819, -0.9675609645160973073, -0.4225656795349874318, 0.9978007928608218211, 0.9930268136840252886, 0.9742188336594112582, 0.98894332023577992, 0.1691945772022621398, -0.5329241083339341605, 0.6104061866258221694, -0.904884104562055846, 0.198486896964300702, -0.9871658500260248674, -0.360538873089604231, 0.9399850628094713436, 0.8558332081054942939, 0.4051203212225112045, -0.9634305515569832727, 0.6958405084342001396}]\ \>", "\<\ {-0.537237, -0.875475, -0.967561, <<8>>6, <<14>>, -0.963431, 0.695841}\ \>"], "Output", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["Next, we find the position index of the winning cell .", "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[CellGroupData[{Cell["\<\ Position[ netInputs, Max[netInputs]] \ \>", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[OutputFormData["\<\ {{5}}\ \>", "\<\ {{5}}\ \>"], "Output", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}]}, Open]], Cell[TextData[{ "We just need the number inside the list (", StyleBox["Flatten", FontWeight->"Bold"], " will do) and we should allow for the unlikely event of more than one \ maximum, in which case we will just take the first to show up in the array." }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[CellGroupData[{Cell["peakIndex=First[Flatten[%]]", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[OutputFormData["\<\ 5\ \>", "\<\ 5\ \>"], "Output", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}]}, Open]], Cell[TextData[{ "We can now align the array of ", StyleBox["pullFactors", FontFamily->"Courier", FontWeight->"Bold"], " with the ", StyleBox["peakIndex", FontWeight->"Bold"], "th cell by shifting to the right by an amount equal to ", StyleBox["peakIndex -1. ", FontWeight->"Bold"] }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["\<\ pullFactors= RotateRight[pullFactors,peakIndex-1];\ \>", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ "We are now in position to adjust the weights", StyleBox[" in parallel", FontSlant->"Italic"], " in the entire ", StyleBox["weightVectors", FontWeight->"Bold"], " array. Specifically, we will rotate the ", StyleBox["weightAngles", FontWeight->"Bold"], " toward the datum angle ", StyleBox["theta", FontWeight->"Bold"], ", in proportions set by the ", StyleBox["pullFactors", FontWeight->"Bold"], " array and multiplied by a gain parameter,", StyleBox[" gain,", FontWeight->"Bold"], " that controls the size of the successive adjustments. At this time ", StyleBox["gain", FontWeight->"Bold"], " is set to a constant value." }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["gain = 0.5;", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["Let us apply the learning rule", "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["\<\ winningCellWeightsBefore=weightVectors[[peakIndex]]; newWeightAngles = \tweightAngles + gain (theta-weightAngles) pullFactors;\t newWeightVectors= Transpose[{Cos[newWeightAngles],Sin[newWeightAngles]}]; winningCellWeightsAfter=newWeightVectors[[peakIndex]];\ \>", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[CellGroupData[{Cell["\<\ Show[ \tGraphics[ { \t\t\tRGBColor[0,0,1], PointSize[0.06], \t\t\tPoint[datum], Line[{{0,0},datum}], \t\t\tRGBColor[0,0,1],Line[{winningCellWeightsBefore, \t\t\twinningCellWeightsAfter}], \t\t\t PointSize[0.02], \t\t\t Point[winningCellWeightsBefore], \t\t\t RGBColor[0,0,1],PointSize[0.04], \t\t\t Point[winningCellWeightsAfter]} \t ], Axes-> True, AxesOrigin->{0,0},AxesLabel->{{w1},{w2}}];\ \>", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: 0.61803 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.97619 2.69213 0.0147151 0.615227 [ [(-0.35)] 0.03394 0.01472 0 2 Msboxa [(-0.3)] 0.16855 0.01472 0 2 Msboxa [(-0.25)] 0.30316 0.01472 0 2 Msboxa [(-0.2)] 0.43776 0.01472 0 2 Msboxa [(-0.15)] 0.57237 0.01472 0 2 Msboxa [(-0.1)] 0.70698 0.01472 0 2 Msboxa [(-0.05)] 0.84158 0.01472 0 2 Msboxa [({w1})] 1.025 0.01472 -1 0 Msboxa [(0.2)] 0.96369 0.13776 1 0 Msboxa [(0.4)] 0.96369 0.26081 1 0 Msboxa [(0.6)] 0.96369 0.38385 1 0 Msboxa [(0.8)] 0.96369 0.5069 1 0 Msboxa [({w2})] 0.97619 0.61803 0 -4 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 0.61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave gsave 0.002 setlinewidth 0.03394 0.01472 moveto 0.03394 0.02097 lineto stroke grestore [(-0.35)] 0.03394 0.01472 0 2 Mshowa gsave 0.002 setlinewidth 0.16855 0.01472 moveto 0.16855 0.02097 lineto stroke grestore [(-0.3)] 0.16855 0.01472 0 2 Mshowa gsave 0.002 setlinewidth 0.30316 0.01472 moveto 0.30316 0.02097 lineto stroke grestore [(-0.25)] 0.30316 0.01472 0 2 Mshowa gsave 0.002 setlinewidth 0.43776 0.01472 moveto 0.43776 0.02097 lineto stroke grestore [(-0.2)] 0.43776 0.01472 0 2 Mshowa gsave 0.002 setlinewidth 0.57237 0.01472 moveto 0.57237 0.02097 lineto stroke grestore [(-0.15)] 0.57237 0.01472 0 2 Mshowa gsave 0.002 setlinewidth 0.70698 0.01472 moveto 0.70698 0.02097 lineto stroke grestore [(-0.1)] 0.70698 0.01472 0 2 Mshowa gsave 0.002 setlinewidth 0.84158 0.01472 moveto 0.84158 0.02097 lineto stroke grestore [(-0.05)] 0.84158 0.01472 0 2 Mshowa gsave 0.001 setlinewidth 0.06086 0.01472 moveto 0.06086 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.08779 0.01472 moveto 0.08779 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.11471 0.01472 moveto 0.11471 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.14163 0.01472 moveto 0.14163 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.19547 0.01472 moveto 0.19547 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.22239 0.01472 moveto 0.22239 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.24931 0.01472 moveto 0.24931 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.27624 0.01472 moveto 0.27624 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.33008 0.01472 moveto 0.33008 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.357 0.01472 moveto 0.357 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.38392 0.01472 moveto 0.38392 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.41084 0.01472 moveto 0.41084 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.46469 0.01472 moveto 0.46469 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.49161 0.01472 moveto 0.49161 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.51853 0.01472 moveto 0.51853 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.54545 0.01472 moveto 0.54545 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.59929 0.01472 moveto 0.59929 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.62621 0.01472 moveto 0.62621 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.65313 0.01472 moveto 0.65313 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.68006 0.01472 moveto 0.68006 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.7339 0.01472 moveto 0.7339 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.76082 0.01472 moveto 0.76082 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.78774 0.01472 moveto 0.78774 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.81466 0.01472 moveto 0.81466 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.86851 0.01472 moveto 0.86851 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.89543 0.01472 moveto 0.89543 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.92235 0.01472 moveto 0.92235 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.94927 0.01472 moveto 0.94927 0.01847 lineto stroke grestore gsave 0.001 setlinewidth 0.00702 0.01472 moveto 0.00702 0.01847 lineto stroke grestore [({w1})] 1.025 0.01472 -1 0 Mshowa gsave 0.002 setlinewidth 0 0.01472 moveto 1 0.01472 lineto stroke grestore gsave 0.002 setlinewidth 0.97619 0.13776 moveto 0.98244 0.13776 lineto stroke grestore [(0.2)] 0.96369 0.13776 1 0 Mshowa gsave 0.002 setlinewidth 0.97619 0.26081 moveto 0.98244 0.26081 lineto stroke grestore [(0.4)] 0.96369 0.26081 1 0 Mshowa gsave 0.002 setlinewidth 0.97619 0.38385 moveto 0.98244 0.38385 lineto stroke grestore [(0.6)] 0.96369 0.38385 1 0 Mshowa gsave 0.002 setlinewidth 0.97619 0.5069 moveto 0.98244 0.5069 lineto stroke grestore [(0.8)] 0.96369 0.5069 1 0 Mshowa gsave 0.001 setlinewidth 0.97619 0.03932 moveto 0.97994 0.03932 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.06393 moveto 0.97994 0.06393 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.08854 moveto 0.97994 0.08854 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.11315 moveto 0.97994 0.11315 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.16237 moveto 0.97994 0.16237 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.18698 moveto 0.97994 0.18698 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.21159 moveto 0.97994 0.21159 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.2362 moveto 0.97994 0.2362 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.28541 moveto 0.97994 0.28541 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.31002 moveto 0.97994 0.31002 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.33463 moveto 0.97994 0.33463 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.35924 moveto 0.97994 0.35924 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.40846 moveto 0.97994 0.40846 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.43307 moveto 0.97994 0.43307 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.45768 moveto 0.97994 0.45768 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.48229 moveto 0.97994 0.48229 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.53151 moveto 0.97994 0.53151 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.55611 moveto 0.97994 0.55611 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.58072 moveto 0.97994 0.58072 lineto stroke grestore gsave 0.001 setlinewidth 0.97619 0.60533 moveto 0.97994 0.60533 lineto stroke grestore [({w2})] 0.97619 0.61803 0 -4 Mshowa gsave 0.002 setlinewidth 0.97619 0 moveto 0.97619 0.61803 lineto stroke grestore grestore 0 0 moveto 1 0 lineto 1 0.61803 lineto 0 0.61803 lineto closepath clip newpath gsave 0 0 1 setrgbcolor 0.06 setlinewidth 0.02381 0.59016 Mdot 0.004 setlinewidth 0.97619 0.01472 moveto 0.02381 0.59016 lineto stroke 0.19281 0.60332 moveto 0.10783 0.59706 lineto stroke 0.02 setlinewidth 0.19281 0.60332 Mdot 0.04 setlinewidth 0.10783 0.59706 Mdot grestore % End of Graphics MathPictureEnd\ \>"], "Graphics", ImageSize->{233, 144}, ImageMargins->{{116, Inherited}, {Inherited, Inherited}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCacheValid->False]}, Open]]}, Open]], Cell["\<\ We can see that the vector representing the maximally responding cell has \ moved closer to the datum. We can also look at the current state of the \ entire array by showing the irregular polygon formed by the weight vectors of \ successive cells in the array \ \>", "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[CellGroupData[{Cell["\<\ Show[ \tGraphics[ { \t\t\tPointSize[0.02] , RGBColor[1,0,0], \t\t\tMap[Point, weightVectors], \t\t\tLine[weightVectors],\t\t \t\t\tRGBColor[0,0,1], PointSize[0.04],Thickness[0.01], \t\t\tPoint[datum], Line[{{0,0},datum}], \t\t\tRGBColor[0,1,1],Point[winningCellWeightsAfter] \t\t\t}], Axes->True, AxesOrigin->{0,0},AspectRatio->1]\ \>", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: 1 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.496877 0.479326 0.504457 0.482615 [ [(-1)] 0.01755 0.50446 0 2 Msboxa [(-0.5)] 0.25721 0.50446 0 2 Msboxa [(0.5)] 0.73654 0.50446 0 2 Msboxa [(1)] 0.9762 0.50446 0 2 Msboxa [(-1)] 0.48438 0.02184 1 0 Msboxa [(-0.5)] 0.48438 0.26315 1 0 Msboxa [(0.5)] 0.48438 0.74576 1 0 Msboxa [(1)] 0.48438 0.98707 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 1.001 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave gsave 0.002 setlinewidth 0.01755 0.50446 moveto 0.01755 0.51071 lineto stroke grestore [(-1)] 0.01755 0.50446 0 2 Mshowa gsave 0.002 setlinewidth 0.25721 0.50446 moveto 0.25721 0.51071 lineto stroke grestore [(-0.5)] 0.25721 0.50446 0 2 Mshowa gsave 0.002 setlinewidth 0.73654 0.50446 moveto 0.73654 0.51071 lineto stroke grestore [(0.5)] 0.73654 0.50446 0 2 Mshowa gsave 0.002 setlinewidth 0.9762 0.50446 moveto 0.9762 0.51071 lineto stroke grestore [(1)] 0.9762 0.50446 0 2 Mshowa gsave 0.001 setlinewidth 0.06548 0.50446 moveto 0.06548 0.50821 lineto stroke grestore gsave 0.001 setlinewidth 0.11342 0.50446 moveto 0.11342 0.50821 lineto stroke grestore gsave 0.001 setlinewidth 0.16135 0.50446 moveto 0.16135 0.50821 lineto stroke grestore gsave 0.001 setlinewidth 0.20928 0.50446 moveto 0.20928 0.50821 lineto stroke grestore gsave 0.001 setlinewidth 0.30515 0.50446 moveto 0.30515 0.50821 lineto stroke grestore gsave 0.001 setlinewidth 0.35308 0.50446 moveto 0.35308 0.50821 lineto stroke grestore gsave 0.001 setlinewidth 0.40101 0.50446 moveto 0.40101 0.50821 lineto stroke grestore gsave 0.001 setlinewidth 0.44894 0.50446 moveto 0.44894 0.50821 lineto stroke grestore gsave 0.001 setlinewidth 0.54481 0.50446 moveto 0.54481 0.50821 lineto stroke grestore gsave 0.001 setlinewidth 0.59274 0.50446 moveto 0.59274 0.50821 lineto stroke grestore gsave 0.001 setlinewidth 0.64067 0.50446 moveto 0.64067 0.50821 lineto stroke grestore gsave 0.001 setlinewidth 0.68861 0.50446 moveto 0.68861 0.50821 lineto stroke grestore gsave 0.001 setlinewidth 0.78447 0.50446 moveto 0.78447 0.50821 lineto stroke grestore gsave 0.001 setlinewidth 0.83241 0.50446 moveto 0.83241 0.50821 lineto stroke grestore gsave 0.001 setlinewidth 0.88034 0.50446 moveto 0.88034 0.50821 lineto stroke grestore gsave 0.001 setlinewidth 0.92827 0.50446 moveto 0.92827 0.50821 lineto stroke grestore gsave 0.002 setlinewidth 0 0.50446 moveto 1 0.50446 lineto stroke grestore gsave 0.002 setlinewidth 0.49688 0.02184 moveto 0.50313 0.02184 lineto stroke grestore [(-1)] 0.48438 0.02184 1 0 Mshowa gsave 0.002 setlinewidth 0.49688 0.26315 moveto 0.50313 0.26315 lineto stroke grestore [(-0.5)] 0.48438 0.26315 1 0 Mshowa gsave 0.002 setlinewidth 0.49688 0.74576 moveto 0.50313 0.74576 lineto stroke grestore [(0.5)] 0.48438 0.74576 1 0 Mshowa gsave 0.002 setlinewidth 0.49688 0.98707 moveto 0.50313 0.98707 lineto stroke grestore [(1)] 0.48438 0.98707 1 0 Mshowa gsave 0.001 setlinewidth 0.49688 0.0701 moveto 0.50063 0.0701 lineto stroke grestore gsave 0.001 setlinewidth 0.49688 0.11837 moveto 0.50063 0.11837 lineto stroke grestore gsave 0.001 setlinewidth 0.49688 0.16663 moveto 0.50063 0.16663 lineto stroke grestore gsave 0.001 setlinewidth 0.49688 0.21489 moveto 0.50063 0.21489 lineto stroke grestore gsave 0.001 setlinewidth 0.49688 0.31141 moveto 0.50063 0.31141 lineto stroke grestore gsave 0.001 setlinewidth 0.49688 0.35967 moveto 0.50063 0.35967 lineto stroke grestore gsave 0.001 setlinewidth 0.49688 0.40793 moveto 0.50063 0.40793 lineto stroke grestore gsave 0.001 setlinewidth 0.49688 0.4562 moveto 0.50063 0.4562 lineto stroke grestore gsave 0.001 setlinewidth 0.49688 0.55272 moveto 0.50063 0.55272 lineto stroke grestore gsave 0.001 setlinewidth 0.49688 0.60098 moveto 0.50063 0.60098 lineto stroke grestore gsave 0.001 setlinewidth 0.49688 0.64924 moveto 0.50063 0.64924 lineto stroke grestore gsave 0.001 setlinewidth 0.49688 0.6975 moveto 0.50063 0.6975 lineto stroke grestore gsave 0.001 setlinewidth 0.49688 0.79403 moveto 0.50063 0.79403 lineto stroke grestore gsave 0.001 setlinewidth 0.49688 0.84229 moveto 0.50063 0.84229 lineto stroke grestore gsave 0.001 setlinewidth 0.49688 0.89055 moveto 0.50063 0.89055 lineto stroke grestore gsave 0.001 setlinewidth 0.49688 0.93881 moveto 0.50063 0.93881 lineto stroke grestore gsave 0.002 setlinewidth 0.49688 0 moveto 0.49688 1 lineto stroke grestore grestore 0 0 moveto 1 0 lineto 1 1 lineto 0 1 lineto closepath clip newpath gsave 1 0 0 setrgbcolor gsave 0.02 setlinewidth 0.20984 0.11794 Mdot 0.86199 0.19177 Mdot 0.77421 0.11083 Mdot 0.97487 0.46845 Mdot 0.3574 0.96619 Mdot 0.38134 0.97284 Mdot 0.23053 0.90571 Mdot 0.39567 0.97619 Mdot 0.02632 0.41256 Mdot 0.20788 0.11942 Mdot 0.74849 0.91523 Mdot 0.84115 0.16866 Mdot 0.02381 0.42672 Mdot 0.59267 0.03158 Mdot 0.97619 0.50096 Mdot 0.18451 0.87052 Mdot 0.11985 0.80247 Mdot 0.83807 0.84342 Mdot 0.54011 0.02381 Mdot 0.70087 0.94118 Mdot grestore 0.004 setlinewidth 0.20984 0.11794 moveto 0.86199 0.19177 lineto 0.77421 0.11083 lineto 0.97487 0.46845 lineto 0.3574 0.96619 lineto 0.38134 0.97284 lineto 0.23053 0.90571 lineto 0.39567 0.97619 lineto 0.02632 0.41256 lineto 0.20788 0.11942 lineto 0.74849 0.91523 lineto 0.84115 0.16866 lineto 0.02381 0.42672 lineto 0.59267 0.03158 lineto 0.97619 0.50096 lineto 0.18451 0.87052 lineto 0.11985 0.80247 lineto 0.83807 0.84342 lineto 0.54011 0.02381 lineto 0.70087 0.94118 lineto stroke 0 0 1 setrgbcolor 0.04 setlinewidth 0.32731 0.95586 Mdot 0.01 setlinewidth 0.49688 0.50446 moveto 0.32731 0.95586 lineto stroke 0 1 1 setrgbcolor 0.04 setlinewidth 0.34227 0.96128 Mdot grestore % End of Graphics MathPictureEnd\ \>"], "Graphics", ImageSize->{280, 280}, ImageMargins->{{88, Inherited}, {Inherited, Inherited}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCacheValid->False], Cell[OutputFormData["\<\ The Unformatted text for this cell was not generated. Use options in the Actions Preferences dialog box to control when Unformatted text is generated.\ \>", "\<\ -Graphics-\ \>"], "Output", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}]}, Open]], Cell["Spatial Self-organization", "Subsubsection", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["\<\ We will now reset the problem parameters and iterate the process to see how \ the cell weights ( represented as points around the circle) self-organize \ when input data from a uniform distribution is applied repeatedly and weights \ are corrected according to the rules just described. The output graphs can be animated to better illustrate the transformation. \ \>", "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[CellGroupData[{Cell["\<\ Clear[weightAngles,newWeightAngles,weightVectors,newWeightVectors]\ \>", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["\<\ numData =50; weightAngles=Table[u, {numData}]; weightVectors=Transpose[{Cos[weightAngles],Sin[weightAngles]}];\ \>", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ "We set new parameters and recalculate ", StyleBox["pullFactors ", FontWeight->"Bold"], "exactly as detailed earlier." }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["\<\ pullExtent = 5; spread=0.6;\ \>", "Input", PageWidth->PaperWidth, AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["\<\ pullFactors =RotateLeft[Join[ \tTable[ pullProfile[distance,spread], \t {distance,-pullExtent, pullExtent}], \tTable[0,{numData-2*pullExtent-1}] ],pullExtent]; \ \>", "Input", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ "We will now iterate the network. To avoid an excessive number of \ graphics outputs, we will look at the configuration periodically, after ", StyleBox["iterInterval ", FontWeight->"Bold"], "steps, and continue the process for ", StyleBox["numSnap", FontWeight->"Bold"], " successive such iteration intervals (each graph will be separated by ", StyleBox["iterInterval", FontWeight->"Bold"], " iterations)." }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ "We need to introduce two additional heuristics. At the beginning the \ network is very disorganized and large corrections are desirable. These \ should be progressively reduced as spatial organization settles in. This can \ be accomplished by using a decay factor for the adjustment gain ", StyleBox["gain", FontWeight->"Bold"], ". To further improve convergence, it is also desirable to start with a \ broad spatial spread of adjustment (determined by the value of ", StyleBox["pullExtent", FontFamily->"Courier", FontWeight->"Bold"], StyleBox[")", FontFamily->"Courier"], ". This will require recalculating the correction table periodically and \ will be omitted at this time." }], "Text", AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell["\<\ numSnap=10; iterInterval=50; gain=0.3; decay=1/(numSnap*iterInterval); iterNumber=0; datum=winningCell={0.,0.};\ \>", "Input", PageWidth->PaperWidth, AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[CellGroupData[{Cell["\<\ Do[ Show[ \tGraphics[ { \t\t\tPointSize[0.02] , RGBColor[0,0,1], \t\t\tMap[Point, weightVectors], \t\t\tLine[weightVectors],\t\t \t\t\tRGBColor[0,0,1], PointSize[0.06],Thickness[0.01], \t\t\tPoint[datum], Line[{{0,0},datum}], \t\t\tRGBColor[0,1,1],PointSize[0.06], Point[winningCell]}, Axes->False,\t\t\t AxesOrigin->{0,0},AspectRatio->1,PlotRange->{{-1,1},{-1,1}}, PlotLabel -> StringForm[\"Iteration Number ``\",iterNumber]]]; Do[ \ttheta=u; \tdatum= {Cos[theta],Sin[theta]}; \tnetInputs = weightVectors.datum; \tpeakIndex= \tFlatten[Position[ netInputs, Max[netInputs] ]][[1]]; \t\t \tfactors = gain RotateRight[pullFactors,peakIndex-1]; \tnewWeightAngles = weightAngles + (theta-weightAngles) factors;\t \tnewWeightVectors= \tTranspose[{Cos[newWeightAngles],Sin[newWeightAngles]}]; weightAngles = newWeightAngles; weightVectors=newWeightVectors; winningCell=weightVectors[[peakIndex]]; gain=gain - decay gain;iterNumber++, {iterInterval}], {numSnap}];\ \>", "Input", PageWidth->PaperWidth, Evaluatable->False, AspectRatioFixed->False, ImageRegion->{{0, 1}, {0, 1}}], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: 1 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.5 0.5 0.5 0.5 [ [(Iteration Number 0)] 0.5 1 0 -2 Msboxa [ 0 0 0 0 ] [ 1 1 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave [(Iteration Number 0)] 0.5 1 0 -2 Mshowa grestore 0 0 moveto 1 0 lineto 1 1 lineto 0 1 lineto closepath clip newpath gsave 0 0 1 setrgbcolor gsave 0.02 setlinewidth 0.53979 0.00159 Mdot 0.05309 0.72422 Mdot 0.00282 0.44699 Mdot 0.35314 0.02205 Mdot 0.08031 0.22823 Mdot 0.88773 0.81569 Mdot 0.92133 0.23078 Mdot 0.94948 0.28099 Mdot 0.24902 0.93244 Mdot 0.01547 0.37659 Mdot 0.33219 0.029 Mdot 0.29428 0.95572 Mdot 0.20278 0.09793 Mdot 0.99362 0.42041 Mdot 0.27683 0.05257 Mdot 0.17445 0.12051 Mdot 0.88666 0.18299 Mdot 0.46659 0.99888 Mdot 0.16556 0.87169 Mdot 0.87212 0.16604 Mdot 0.00085 0.47077 Mdot 0.17998 0.11583 Mdot 0.92264 0.23284 Mdot 0.44638 0.99712 Mdot 0.0139 0.61708 Mdot 0.96248 0.30997 Mdot 0.99099 0.40552 Mdot 0.32257 0.96746 Mdot 0.3333 0.97139 Mdot 0.79037 0.09296 Mdot 0.04378 0.70461 Mdot 0.5469 0.0022 Mdot 0.92915 0.24342 Mdot 0.00156 0.46058 Mdot 0.07855 0.23096 Mdot 0.00192 0.45625 Mdot 0.33191 0.9709 Mdot 0.23001 0.07916 Mdot 0.98905 0.60406 Mdot 0.99363 0.57956 Mdot 0.61265 0.98714 Mdot 0.09282 0.79018 Mdot 0.32004 0.96649 Mdot 0.9707 0.33136 Mdot 0.99785 0.54633 Mdot 0.66841 0.97078 Mdot 0.99905 0.46915 Mdot 0.63334 0.98189 Mdot 0.11219 0.8156 Mdot 0.96264 0.68964 Mdot grestore 0.004 setlinewidth 0.53979 0.00159 moveto 0.05309 0.72422 lineto 0.00282 0.44699 lineto 0.35314 0.02205 lineto 0.08031 0.22823 lineto 0.88773 0.81569 lineto 0.92133 0.23078 lineto 0.94948 0.28099 lineto 0.24902 0.93244 lineto 0.01547 0.37659 lineto 0.33219 0.029 lineto 0.29428 0.95572 lineto 0.20278 0.09793 lineto 0.99362 0.42041 lineto 0.27683 0.05257 lineto 0.17445 0.12051 lineto 0.88666 0.18299 lineto 0.46659 0.99888 lineto 0.16556 0.87169 lineto 0.87212 0.16604 lineto 0.00085 0.47077 lineto 0.17998 0.11583 lineto 0.92264 0.23284 lineto 0.44638 0.99712 lineto 0.0139 0.61708 lineto 0.96248 0.30997 lineto 0.99099 0.40552 lineto 0.32257 0.96746 lineto 0.3333 0.97139 lineto 0.79037 0.09296 lineto 0.04378 0.70461 lineto 0.5469 0.0022 lineto 0.92915 0.24342 lineto 0.00156 0.46058 lineto 0.07855 0.23096 lineto 0.00192 0.45625 lineto 0.33191 0.9709 lineto 0.23001 0.07916 lineto 0.98905 0.60406 lineto 0.99363 0.57956 lineto 0.61265 0.98714 lineto 0.09282 0.79018 lineto 0.32004 0.96649 lineto 0.9707 0.33136 lineto 0.99785 0.54633 lineto 0.66841 0.97078 lineto 0.99905 0.46915 lineto 0.63334 0.98189 lineto 0.11219 0.8156 lineto 0.96264 0.68964 lineto Mistroke Mfstroke 0.06 setlinewidth 0.5 0.5 Mdot 0.01 setlinewidth 0.5 0.5 moveto 0.5 0.5 lineto stroke 0 1 1 setrgbcolor 0.06 setlinewidth 0.5 0.5 Mdot grestore % End of Graphics MathPictureEnd\ \>"], "Graphics", ImageSize->{195, 195}, ImageMargins->{{95, Inherited}, {Inherited, Inherited}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCacheValid->False], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: 1 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.5 0.5 0.5 0.5 [ [(Iteration Number 50)] 0.5 1 0 -2 Msboxa [ 0 0 0 0 ] [ 1 1 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave [(Iteration Number 50)] 0.5 1 0 -2 Mshowa grestore 0 0 moveto 1 0 lineto 1 1 lineto 0 1 lineto closepath clip newpath gsave 0 0 1 setrgbcolor gsave 0.02 setlinewidth 0.79548 0.09665 Mdot 0.99215 0.58823 Mdot 0.52506 0.00063 Mdot 0.6362 0.01891 Mdot 0.5697 0.00488 Mdot 0.92789 0.24133 Mdot 0.81972 0.11558 Mdot 0.75966 0.07271 Mdot 0.97391 0.34061 Mdot 0.07627 0.23458 Mdot 0.22691 0.08117 Mdot 0.99783 0.54656 Mdot 0.30037 0.04158 Mdot 0.83008 0.12444 Mdot 0.48267 0.0003 Mdot 0.54336 0.00188 Mdot 0.92032 0.22921 Mdot 0.93048 0.75433 Mdot 0.76114 0.92639 Mdot 0.95069 0.28348 Mdot 0.3007 0.04144 Mdot 0.5758 0.00578 Mdot 0.9949 0.57124 Mdot 0.33595 0.97232 Mdot 0.07418 0.76206 Mdot 0.682 0.9657 Mdot 0.68348 0.96512 Mdot 0.3305 0.97039 Mdot 0.28963 0.95359 Mdot 0.61473 0.98666 Mdot 0.21979 0.9141 Mdot 0.86937 0.837 Mdot 0.99031 0.59795 Mdot 0.47404 0.00067 Mdot 0.32134 0.03301 Mdot 0.13638 0.15681 Mdot 0.97707 0.35032 Mdot 0.34827 0.02358 Mdot 0.96686 0.32101 Mdot 0.99236 0.58706 Mdot 0.64234 0.97931 Mdot 0.31426 0.96422 Mdot 0.46056 0.99844 Mdot 0.94704 0.72396 Mdot 0.94991 0.71813 Mdot 0.79561 0.90326 Mdot 0.99429 0.57537 Mdot 0.87598 0.8296 Mdot 0.80136 0.89898 Mdot 0.97879 0.3559 Mdot grestore 0.004 setlinewidth 0.79548 0.09665 moveto 0.99215 0.58823 lineto 0.52506 0.00063 lineto 0.6362 0.01891 lineto 0.5697 0.00488 lineto 0.92789 0.24133 lineto 0.81972 0.11558 lineto 0.75966 0.07271 lineto 0.97391 0.34061 lineto 0.07627 0.23458 lineto 0.22691 0.08117 lineto 0.99783 0.54656 lineto 0.30037 0.04158 lineto 0.83008 0.12444 lineto 0.48267 0.0003 lineto 0.54336 0.00188 lineto 0.92032 0.22921 lineto 0.93048 0.75433 lineto 0.76114 0.92639 lineto 0.95069 0.28348 lineto 0.3007 0.04144 lineto 0.5758 0.00578 lineto 0.9949 0.57124 lineto 0.33595 0.97232 lineto 0.07418 0.76206 lineto 0.682 0.9657 lineto 0.68348 0.96512 lineto 0.3305 0.97039 lineto 0.28963 0.95359 lineto 0.61473 0.98666 lineto 0.21979 0.9141 lineto 0.86937 0.837 lineto 0.99031 0.59795 lineto 0.47404 0.00067 lineto 0.32134 0.03301 lineto 0.13638 0.15681 lineto 0.97707 0.35032 lineto 0.34827 0.02358 lineto 0.96686 0.32101 lineto 0.99236 0.58706 lineto 0.64234 0.97931 lineto 0.31426 0.96422 lineto 0.46056 0.99844 lineto 0.94704 0.72396 lineto 0.94991 0.71813 lineto 0.79561 0.90326 lineto 0.99429 0.57537 lineto 0.87598 0.8296 lineto 0.80136 0.89898 lineto 0.97879 0.3559 lineto Mistroke Mfstroke 0.06 setlinewidth 0.77472 0.91777 Mdot 0.01 setlinewidth 0.5 0.5 moveto 0.77472 0.91777 lineto stroke 0 1 1 setrgbcolor 0.06 setlinewidth 0.76114 0.92639 Mdot grestore % End of Graphics MathPictureEnd\ \>"], "Graphics", ImageSize->{195, 195}, ImageMargins->{{95, Inherited}, {Inherited, Inherited}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCacheValid->False], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: 1 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.5 0.5 0.5 0.5 [ [(Iteration Number 100)] 0.5 1 0 -2 Msboxa [ 0 0 0 0 ] [ 1 1 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave [(Iteration Number 100)] 0.5 1 0 -2 Mshowa grestore 0 0 moveto 1 0 lineto 1 1 lineto 0 1 lineto closepath clip newpath gsave 0 0 1 setrgbcolor gsave 0.02 setlinewidth 0.933 0.24998 Mdot 0.99908 0.53031 Mdot 0.77224 0.08061 Mdot 0.75213 0.06822 Mdot 0.62259 0.01526 Mdot 0.84724 0.14025 Mdot 0.70147 0.04239 Mdot 0.58365 0.00705 Mdot 0.60295 0.01071 Mdot 0.21073 0.09217 Mdot 0.36418 0.0188 Mdot 0.76539 0.07625 Mdot 0.54515 0.00204 Mdot 0.79487 0.09621 Mdot 0.65816 0.02567 Mdot 0.75313 0.06881 Mdot 0.98276 0.36982 Mdot 0.95389 0.70971 Mdot 0.87735 0.82803 Mdot 0.9993 0.52644 Mdot 0.93087 0.24632 Mdot 0.97665 0.65101 Mdot 0.49995 1 Mdot 0.15866 0.86536 Mdot 0.07705 0.76667 Mdot 0.19339 0.89495 Mdot 0.31321 0.9638 Mdot 0.32666 0.96899 Mdot 0.37035 0.9829 Mdot 0.60937 0.98789 Mdot 0.59131 0.99159 Mdot 0.97071 0.66862 Mdot 0.99593 0.43632 Mdot 0.7811 0.0865 Mdot 0.69923 0.04141 Mdot 0.78259 0.08752 Mdot 0.91172 0.21629 Mdot 0.64706 0.02211 Mdot 0.99141 0.40773 Mdot 0.95143 0.71496 Mdot 0.68587 0.96417 Mdot 0.45319 0.9978 Mdot 0.50202 1 Mdot 0.88157 0.82312 Mdot 0.91782 0.77464 Mdot 0.79595 0.90301 Mdot 0.98977 0.60062 Mdot 0.90361 0.79512 Mdot 0.8928 0.80937 Mdot 0.99539 0.43229 Mdot grestore 0.004 setlinewidth 0.933 0.24998 moveto 0.99908 0.53031 lineto 0.77224 0.08061 lineto 0.75213 0.06822 lineto 0.62259 0.01526 lineto 0.84724 0.14025 lineto 0.70147 0.04239 lineto 0.58365 0.00705 lineto 0.60295 0.01071 lineto 0.21073 0.09217 lineto 0.36418 0.0188 lineto 0.76539 0.07625 lineto 0.54515 0.00204 lineto 0.79487 0.09621 lineto 0.65816 0.02567 lineto 0.75313 0.06881 lineto 0.98276 0.36982 lineto 0.95389 0.70971 lineto 0.87735 0.82803 lineto 0.9993 0.52644 lineto 0.93087 0.24632 lineto 0.97665 0.65101 lineto 0.49995 1 lineto 0.15866 0.86536 lineto 0.07705 0.76667 lineto 0.19339 0.89495 lineto 0.31321 0.9638 lineto 0.32666 0.96899 lineto 0.37035 0.9829 lineto 0.60937 0.98789 lineto 0.59131 0.99159 lineto 0.97071 0.66862 lineto 0.99593 0.43632 lineto 0.7811 0.0865 lineto 0.69923 0.04141 lineto 0.78259 0.08752 lineto 0.91172 0.21629 lineto 0.64706 0.02211 lineto 0.99141 0.40773 lineto 0.95143 0.71496 lineto 0.68587 0.96417 lineto 0.45319 0.9978 lineto 0.50202 1 lineto 0.88157 0.82312 lineto 0.91782 0.77464 lineto 0.79595 0.90301 lineto 0.98977 0.60062 lineto 0.90361 0.79512 lineto 0.8928 0.80937 lineto 0.99539 0.43229 lineto Mistroke Mfstroke 0.06 setlinewidth 0.61712 0.98609 Mdot 0.01 setlinewidth 0.5 0.5 moveto 0.61712 0.98609 lineto stroke 0 1 1 setrgbcolor 0.06 setlinewidth 0.60937 0.98789 Mdot grestore % End of Graphics MathPictureEnd\ \>"], "Graphics", ImageSize->{195, 195}, ImageMargins->{{95, Inherited}, {Inherited, Inherited}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCacheValid->False], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: 1 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.5 0.5 0.5 0.5 [ [(Iteration Number 150)] 0.5 1 0 -2 Msboxa [ 0 0 0 0 ] [ 1 1 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave [(Iteration Number 150)] 0.5 1 0 -2 Mshowa grestore 0 0 moveto 1 0 lineto 1 1 lineto 0 1 lineto closepath clip newpath gsave 0 0 1 setrgbcolor gsave 0.02 setlinewidth 0.96987 0.32906 Mdot 0.99167 0.40913 Mdot 0.867 0.16043 Mdot 0.83051 0.12482 Mdot 0.6694 0.02957 Mdot 0.72432 0.05314 Mdot 0.53709 0.00138 Mdot 0.34759 0.0238 Mdot 0.21167 0.09151 Mdot 0.09687 0.20422 Mdot 0.16552 0.12835 Mdot 0.37744 0.01525 Mdot 0.37884 0.0149 Mdot 0.63576 0.01878 Mdot 0.60897 0.01202 Mdot 0.78696 0.09055 Mdot 0.99099 0.40551 Mdot 0.95374 0.71004 Mdot 0.89686 0.80414 Mdot 0.94471 0.72854 Mdot 0.95859 0.69924 Mdot 0.6654 0.97185 Mdot 0.2014 0.90105 Mdot 0.05454 0.72707 Mdot 0.02689 0.66175 Mdot 0.06611 0.74848 Mdot 0.1373 0.84416 Mdot 0.23566 0.92441 Mdot 0.33647 0.9725 Mdot 0.52564 0.99934 Mdot 0.62179 0.98494 Mdot 0.90676 0.79077 Mdot 0.99203 0.58892 Mdot 0.93016 0.24513 Mdot 0.8145 0.1113 Mdot 0.8383 0.13182 Mdot 0.94622 0.27442 Mdot 0.78007 0.0858 Mdot 0.99713 0.55352 Mdot 0.86188 0.84503 Mdot 0.61292 0.98708 Mdot 0.47169 0.9992 Mdot 0.50976 0.9999 Mdot 0.80206 0.89845 Mdot 0.85581 0.85128 Mdot 0.78599 0.91013 Mdot 0.94949 0.71898 Mdot 0.90737 0.78991 Mdot 0.91707 0.77577 Mdot 0.99992 0.50907 Mdot grestore 0.004 setlinewidth 0.96987 0.32906 moveto 0.99167 0.40913 lineto 0.867 0.16043 lineto 0.83051 0.12482 lineto 0.6694 0.02957 lineto 0.72432 0.05314 lineto 0.53709 0.00138 lineto 0.34759 0.0238 lineto 0.21167 0.09151 lineto 0.09687 0.20422 lineto 0.16552 0.12835 lineto 0.37744 0.01525 lineto 0.37884 0.0149 lineto 0.63576 0.01878 lineto 0.60897 0.01202 lineto 0.78696 0.09055 lineto 0.99099 0.40551 lineto 0.95374 0.71004 lineto 0.89686 0.80414 lineto 0.94471 0.72854 lineto 0.95859 0.69924 lineto 0.6654 0.97185 lineto 0.2014 0.90105 lineto 0.05454 0.72707 lineto 0.02689 0.66175 lineto 0.06611 0.74848 lineto 0.1373 0.84416 lineto 0.23566 0.92441 lineto 0.33647 0.9725 lineto 0.52564 0.99934 lineto 0.62179 0.98494 lineto 0.90676 0.79077 lineto 0.99203 0.58892 lineto 0.93016 0.24513 lineto 0.8145 0.1113 lineto 0.8383 0.13182 lineto 0.94622 0.27442 lineto 0.78007 0.0858 lineto 0.99713 0.55352 lineto 0.86188 0.84503 lineto 0.61292 0.98708 lineto 0.47169 0.9992 lineto 0.50976 0.9999 lineto 0.80206 0.89845 lineto 0.85581 0.85128 lineto 0.78599 0.91013 lineto 0.94949 0.71898 lineto 0.90737 0.78991 lineto 0.91707 0.77577 lineto 0.99992 0.50907 lineto Mistroke Mfstroke 0.06 setlinewidth 0.04959 0.2829 Mdot 0.01 setlinewidth 0.5 0.5 moveto 0.04959 0.2829 lineto stroke 0 1 1 setrgbcolor 0.06 setlinewidth 0.09687 0.20422 Mdot grestore % End of Graphics MathPictureEnd\ \>"], "Graphics", ImageSize->{195, 195}, ImageMargins->{{95, Inherited}, {Inherited, Inherited}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCacheValid->False], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: 1 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.5 0.5 0.5 0.5 [ [(Iteration Number 200)] 0.5 1 0 -2 Msboxa [ 0 0 0 0 ] [ 1 1 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave [(Iteration Number 200)] 0.5 1 0 -2 Mshowa grestore 0 0 moveto 1 0 lineto 1 1 lineto 0 1 lineto closepath clip newpath gsave 0 0 1 setrgbcolor gsave 0.02 setlinewidth 0.97581 0.34637 Mdot 0.97606 0.34714 Mdot 0.90474 0.20643 Mdot 0.84551 0.13858 Mdot 0.67354 0.03108 Mdot 0.63092 0.01744 Mdot 0.46565 0.00118 Mdot 0.27014 0.05597 Mdot 0.1531 0.13991 Mdot 0.09768 0.20311 Mdot 0.13947 0.15356 Mdot 0.26414 0.05913 Mdot 0.33645 0.02751 Mdot 0.51528 0.00023 Mdot 0.57522 0.00569 Mdot 0.73602 0.05921 Mdot 0.94525 0.2725 Mdot 0.99128 0.59299 Mdot 0.92399 0.76502 Mdot 0.93182 0.75205 Mdot 0.89851 0.80197 Mdot 0.67627 0.9679 Mdot 0.45914 0.99833 Mdot 0.39227 0.98826 Mdot 0.48462 0.99976 Mdot 0.43407 0.99563 Mdot 0.58288 0.99308 Mdot 0.40862 0.99158 Mdot 0.38022 0.98544 Mdot 0.49958 1 Mdot 0.61734 0.98604 Mdot 0.90975 0.78653 Mdot 0.9997 0.51729 Mdot 0.91486 0.2209 Mdot 0.83605 0.12977 Mdot 0.854 0.1469 Mdot 0.94016 0.26281 Mdot 0.84164 0.13492 Mdot 0.99824 0.54186 Mdot 0.89105 0.81158 Mdot 0.6683 0.97082 Mdot 0.54499 0.99797 Mdot 0.59002 0.99183 Mdot 0.78606 0.91009 Mdot 0.83716 0.86922 Mdot 0.81583 0.88763 Mdot 0.94886 0.72028 Mdot 0.94931 0.71937 Mdot 0.97755 0.64815 Mdot 0.9984 0.46007 Mdot grestore 0.004 setlinewidth 0.97581 0.34637 moveto 0.97606 0.34714 lineto 0.90474 0.20643 lineto 0.84551 0.13858 lineto 0.67354 0.03108 lineto 0.63092 0.01744 lineto 0.46565 0.00118 lineto 0.27014 0.05597 lineto 0.1531 0.13991 lineto 0.09768 0.20311 lineto 0.13947 0.15356 lineto 0.26414 0.05913 lineto 0.33645 0.02751 lineto 0.51528 0.00023 lineto 0.57522 0.00569 lineto 0.73602 0.05921 lineto 0.94525 0.2725 lineto 0.99128 0.59299 lineto 0.92399 0.76502 lineto 0.93182 0.75205 lineto 0.89851 0.80197 lineto 0.67627 0.9679 lineto 0.45914 0.99833 lineto 0.39227 0.98826 lineto 0.48462 0.99976 lineto 0.43407 0.99563 lineto 0.58288 0.99308 lineto 0.40862 0.99158 lineto 0.38022 0.98544 lineto 0.49958 1 lineto 0.61734 0.98604 lineto 0.90975 0.78653 lineto 0.9997 0.51729 lineto 0.91486 0.2209 lineto 0.83605 0.12977 lineto 0.854 0.1469 lineto 0.94016 0.26281 lineto 0.84164 0.13492 lineto 0.99824 0.54186 lineto 0.89105 0.81158 lineto 0.6683 0.97082 lineto 0.54499 0.99797 lineto 0.59002 0.99183 lineto 0.78606 0.91009 lineto 0.83716 0.86922 lineto 0.81583 0.88763 lineto 0.94886 0.72028 lineto 0.94931 0.71937 lineto 0.97755 0.64815 lineto 0.9984 0.46007 lineto Mistroke Mfstroke 0.06 setlinewidth 0.99172 0.40939 Mdot 0.01 setlinewidth 0.5 0.5 moveto 0.99172 0.40939 lineto stroke 0 1 1 setrgbcolor 0.06 setlinewidth 0.9984 0.46007 Mdot grestore % End of Graphics MathPictureEnd\ \>"], "Graphics", ImageSize->{195, 195}, ImageMargins->{{95, Inherited}, {Inherited, Inherited}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCacheValid->False]}, Open]]}, Open]] }, FrontEndVersion->"4.1 for Microsoft Windows", ScreenRectangle->{{0, 1024}, {0, 695}}, WindowToolbars->{}, CellGrouping->Manual, WindowSize->{499, 599}, WindowMargins->{{Automatic, 58}, {23, Automatic}}, PrivateNotebookOptions->{"ColorPalette"->{RGBColor, -1}}, ShowCellLabel->True, ShowCellTags->False, RenderingOptions->{"ObjectDithering"->True, "RasterDithering"->False} ] (******************************************************************* Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. *******************************************************************) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[1707, 52, 498, 17, 70, "Subtitle"], Cell[2208, 71, 119, 3, 70, "Section"], Cell[2330, 76, 130, 2, 70, "Subsection"], Cell[2463, 80, 668, 19, 70, "Subsubsection"], Cell[3134, 101, 112, 2, 70, "Subsubsection"], Cell[3249, 105, 172, 5, 70, "Text"], Cell[3424, 112, 105, 2, 70, "Subsubsection"], Cell[3532, 116, 484, 12, 70, "Text"], Cell[4019, 130, 220, 7, 70, "Subsubsection"], Cell[4242, 139, 2106, 33, 70, "Text"], Cell[6351, 174, 112, 2, 70, "Subsubsection"], Cell[6466, 178, 529, 12, 70, "Text"], Cell[6998, 192, 118, 2, 70, "Subsubsection"], Cell[7119, 196, 471, 10, 70, "Text"], Cell[CellGroupData[{ Cell[7613, 208, 142, 5, 70, "Input"], Cell[7758, 215, 113, 5, 70, "Output"], Cell[7874, 222, 154, 5, 70, "Output"] }, Open ]], Cell[8040, 229, 94, 2, 70, "Subsubsection"], Cell[8137, 233, 553, 16, 70, "Text"], Cell[8693, 251, 117, 5, 70, "Input"], Cell[CellGroupData[{ Cell[8833, 258, 226, 8, 70, "Input"], Cell[9062, 268, 118, 6, 70, "Output"], Cell[9183, 276, 1231, 25, 70, "Output"] }, Open ]], Cell[10426, 303, 1122, 30, 70, "Text"], Cell[11551, 335, 172, 5, 70, "Input"], Cell[CellGroupData[{ Cell[11746, 342, 193, 6, 70, "Input"], Cell[11942, 350, 7061, 457, 70, 6918, 453, "GraphicsData", "PostScript", \ "Graphics"], Cell[19006, 809, 275, 8, 70, "Output"] }, Open ]], Cell[19293, 819, 512, 13, 70, "Text"], Cell[19808, 834, 85, 4, 70, "Input"], Cell[19896, 840, 371, 9, 70, "Text"], Cell[CellGroupData[{ Cell[20290, 851, 263, 8, 70, "Input"], Cell[20556, 861, 458, 11, 70, "Output"] }, Open ]], Cell[21026, 874, 441, 10, 70, "Text"], Cell[CellGroupData[{ Cell[21490, 886, 120, 2, 70, "Input"], Cell[21613, 890, 458, 11, 70, "Output"] }, Open ]], Cell[22083, 903, 116, 2, 70, "Text"], Cell[CellGroupData[{ Cell[22222, 907, 105, 2, 70, "Input"], Cell[22330, 911, 122, 6, 70, "Output"] }, Open ]], Cell[22464, 919, 101, 2, 70, "Subsubsection"], Cell[22568, 923, 346, 9, 70, "Text"], Cell[CellGroupData[{ Cell[22937, 934, 172, 6, 70, "Input"], Cell[23112, 942, 679, 12, 70, "Output"], Cell[23794, 956, 132, 2, 70, "Text"], Cell[CellGroupData[{ Cell[23949, 960, 123, 5, 70, "Input"], Cell[24075, 967, 124, 6, 70, "Output"] }, Open ]], Cell[24211, 975, 333, 8, 70, "Text"], Cell[CellGroupData[{ Cell[24567, 985, 104, 2, 70, "Input"], Cell[24674, 989, 116, 6, 70, "Output"] }, Open ]], Cell[24802, 997, 381, 13, 70, "Text"], Cell[25186, 1012, 136, 5, 70, "Input"], Cell[25325, 1019, 772, 25, 70, "Text"], Cell[26100, 1046, 88, 2, 70, "Input"], Cell[26191, 1050, 106, 2, 70, "Text"], Cell[26300, 1054, 344, 10, 70, "Input"], Cell[CellGroupData[{ Cell[26667, 1066, 478, 16, 70, "Input"], Cell[27148, 1084, 7223, 447, 70, 7079, 443, "GraphicsData", "PostScript", \ "Graphics"] }, Open ]] }, Open ]], Cell[34392, 1533, 345, 8, 70, "Text"], Cell[CellGroupData[{ Cell[34760, 1543, 417, 14, 70, "Input"], Cell[35180, 1559, 5955, 359, 70, 5812, 355, "GraphicsData", "PostScript", \ "Graphics"], Cell[41138, 1920, 275, 8, 70, "Output"] }, Open ]], Cell[41425, 1930, 110, 2, 70, "Subsubsection"], Cell[41538, 1934, 447, 9, 70, "Text"], Cell[CellGroupData[{ Cell[42008, 1945, 151, 4, 70, "Input"], Cell[42162, 1951, 195, 6, 70, "Input"], Cell[42360, 1959, 216, 7, 70, "Text"], Cell[42579, 1968, 137, 6, 70, "Input"], Cell[42719, 1976, 251, 7, 70, "Input"], Cell[42973, 1985, 525, 14, 70, "Text"], Cell[43501, 2001, 803, 18, 70, "Text"], Cell[44307, 2021, 221, 10, 70, "Input"], Cell[CellGroupData[{ Cell[44551, 2033, 1092, 35, 70, "Input", Evaluatable->False], Cell[45646, 2070, 3092, 153, 70, 2949, 149, "GraphicsData", "PostScript", \ "Graphics"], Cell[48741, 2225, 3106, 153, 70, 2963, 149, "GraphicsData", "PostScript", \ "Graphics"], Cell[51850, 2380, 3094, 153, 70, 2951, 149, "GraphicsData", "PostScript", \ "Graphics"], Cell[54947, 2535, 3106, 153, 70, 2963, 149, "GraphicsData", "PostScript", \ "Graphics"], Cell[58056, 2690, 3105, 153, 70, 2962, 149, "GraphicsData", "PostScript", \ "Graphics"] }, Open ]] }, Open ]] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)