tag:blogger.com,1999:blog-45168757947853655152024-02-20T21:41:35.017-08:00Computational ResearchJack Dikian's research in computational and applied systems.Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.comBlogger21125tag:blogger.com,1999:blog-4516875794785365515.post-78393978350971467972011-11-02T02:23:00.000-07:002014-08-30T17:33:01.251-07:00Fermat's last theorem and the simpsons<div style="text-align: right;">
<b><span class="Apple-style-span" style="color: red; font-size: 180%;">Jack Dikian</span></b></div>
<div style="text-align: right;">
<b><span class="Apple-style-span" style="color: red;">November 2011</span></b></div>
<div>
<span class="Apple-style-span" style="font-family: 'times new roman'; font-size: 100%;"><br /></span></div>
<div>
<!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--><!--[if gte mso 9]><xml> <o:documentproperties> <o:revision>0</o:Revision> <o:totaltime>0</o:TotalTime> <o:pages>1</o:Pages> <o:words>222</o:Words> <o:characters>1268</o:Characters> <o:company>Saphenia</o:Company> <o:lines>10</o:Lines> <o:paragraphs>2</o:Paragraphs> <o:characterswithspaces>1488</o:CharactersWithSpaces> <o:version>14.0</o:Version> </o:DocumentProperties> <o:officedocumentsettings> <o:allowpng/> </o:OfficeDocumentSettings> </xml><![endif]--> <!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:trackmoves>false</w:TrackMoves> <w:trackformatting/> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:donotpromoteqf/> <w:lidthemeother>EN-AU</w:LidThemeOther> <w:lidthemeasian>JA</w:LidThemeAsian> <w:lidthemecomplexscript>X-NONE</w:LidThemeComplexScript> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> <w:splitpgbreakandparamark/> <w:enableopentypekerning/> <w:dontflipmirrorindents/> <w:overridetablestylehps/> <w:usefelayout/> </w:Compatibility> <m:mathpr> <m:mathfont val="Cambria Math"> <m:brkbin val="before"> <m:brkbinsub val="--"> <m:smallfrac val="off"> <m:dispdef/> <m:lmargin val="0"> <m:rmargin val="0"> <m:defjc val="centerGroup"> <m:wrapindent val="1440"> <m:intlim val="subSup"> <m:narylim val="undOvr"> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="276"> <w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"> <w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"> <w:lsdexception locked="false" priority="39" name="toc 1"> <w:lsdexception locked="false" priority="39" name="toc 2"> <w:lsdexception locked="false" priority="39" name="toc 3"> <w:lsdexception locked="false" priority="39" name="toc 4"> <w:lsdexception locked="false" priority="39" name="toc 5"> <w:lsdexception locked="false" priority="39" name="toc 6"> <w:lsdexception locked="false" priority="39" name="toc 7"> <w:lsdexception locked="false" priority="39" name="toc 8"> <w:lsdexception locked="false" priority="39" name="toc 9"> <w:lsdexception locked="false" priority="35" qformat="true" name="caption"> <w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"> <w:lsdexception locked="false" priority="1" name="Default Paragraph Font"> <w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"> <w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"> <w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"> <w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"> <w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"> <w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"> <w:lsdexception locked="false" unhidewhenused="false" name="Revision"> <w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"> <w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"> <w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"> <w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"> <w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"> <w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"> <w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"> <w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"> <w:lsdexception locked="false" priority="37" name="Bibliography"> <w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin;} </style> <![endif]--> <!--StartFragment--> <br />
<div class="MsoNormal">
</div>
<div style="text-align: left;">
<span class="Apple-style-span" style="font-family: 'times new roman'; font-size: 100%;"><span lang="EN-US" style="color: #999999;">The theorem</span><span lang="EN-US" style="color: #999999;"> states that no three positive integers a, b, and c can satisfy the equation a</span><span lang="EN-US" style="color: #999999;">n</span><span lang="EN-US" style="color: #999999;"> + b</span><span lang="EN-US" style="color: #999999;">n</span><span lang="EN-US" style="color: #999999;"> = c</span><span lang="EN-US" style="color: #999999;">n</span><span lang="EN-US" style="color: #999999;"> for any integer value of n greater than two. </span><span lang="EN-US"><b><span class="Apple-style-span" style="color: red;">Fermat</span></b><span class="Apple-style-span" style="color: #999999;">'s last theorem has been one of the most difficult problems to solve. </span></span><span lang="EN-US" style="color: #999999;">It took over 350 years to solve and has precipitated more incorrect proofs than any other math problem.</span></span></div>
<div style="text-align: left;">
<span class="Apple-style-span" style="color: #999999; font-family: 'times new roman'; font-size: 100%;"><span lang="EN-US"><br /></span></span></div>
<span class="Apple-style-span" style="color: #999999; font-family: 'times new roman'; font-size: 100%;">Fermat claimed to have proved this statement but that the margin was too narrow to contain it. It is the seeming simplicity of the problem, coupled with Fermat's claim to have proved it, which has captured the hearts of so many mathematicians.</span><br />
<div class="MsoNormal">
</div>
<div style="text-align: left;">
<span class="Apple-style-span" style="font-family: 'times new roman'; font-size: 100%;"><span class="Apple-style-span" style="color: #999999;">In 1995 </span><b><span class="Apple-style-span" style="color: red;">Andrew Wiles</span></b><span class="Apple-style-span" style="color: #999999;"> released his 108-page proof after spending almost 7 years developing it. The proof is regarded to be one of the most complicated in mathematics and involved (chapters in Wiles’ paper) Galois representations, cohomology groups, Gorenstein property, congruences between Hecke rings, Selmer group, elliptic curves, Gorenstein rings and local complete intersections.</span></span></div>
<div style="text-align: left;">
<span class="Apple-style-span" style="color: #999999; font-family: 'times new roman'; font-size: 100%;"><br /></span></div>
<span class="Apple-style-span" style="font-family: 'times new roman';"><span lang="EN-US" style="color: #999999;">Fermat's last theorem even entered the fictional world of </span><span lang="EN-US"><b><span class="Apple-style-span" style="color: red;">The Simpsons</span></b><span class="Apple-style-span" style="color: #999999;">.</span><span style="color: #999999;"> </span><span class="Apple-style-span" style="color: #999999;">In the episode “Treehouse of Horror VI” </span></span><span lang="EN-US" style="color: #999999;">a sum, proved impossible by the theorem, the equation </span><span lang="EN-US" style="color: #999999;">1782</span><sup style="color: #999999;"><span lang="EN-US">12</span></sup><span lang="EN-US" style="color: #999999;"> + 1841</span><sup style="color: #999999;"><span lang="EN-US">12</span></sup><span lang="EN-US" style="color: #999999;"> = 1922</span><sup style="color: #999999;"><span lang="EN-US">12</span></sup><span lang="EN-US" style="color: #999999;"> is visible. The joke being that the twelfth root of the sum does evaluate to 1922 due to rounding errors. Note that the left hand side is odd, while </span><span lang="EN-US" style="color: #999999;">1922</span><sup style="color: #999999;"><span lang="EN-US">12</span></sup><span lang="EN-US" style="color: #999999;"> is even, so the equality cannot hold. Instead of 1922, it actually is 1921.999999995.</span></span><span class="Apple-style-span" style="color: #999999;"><span class="Apple-style-span" style="font-family: 'times new roman'; font-size: 100%;"></span></span><br />
<div class="MsoNormal" style="text-align: justify;">
<span class="Apple-style-span" style="color: #999999;"><span class="Apple-style-span" style="font-family: 'times new roman'; font-size: 100%;"><span lang="EN-US"><o:p> </o:p></span></span></span></div>
<br />
<div class="MsoNormal">
<span class="Apple-style-span" style="color: #999999; font-family: 'times new roman'; font-size: 100%;"></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span class="Apple-style-span" style="color: #999999; font-family: 'times new roman'; font-size: 100%;"><span lang="EN-US"><o:p> </o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span class="Apple-style-span" style="color: #999999; font-family: 'times new roman'; font-size: 100%;"><span lang="EN-US"><o:p> </o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-US"><o:p><span class="Apple-style-span" style="color: #999999; font-family: 'times new roman'; font-size: 100%;"> </span></o:p></span></div>
<!--EndFragment--><br />
<!--EndFragment--></div>
<div>
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: Times; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
</div>
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: Times; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<span lang="EN-US" style="font-family: Arial;"><span style="background-color: white; color: #444444; font-family: Verdana; font-size: 14px; line-height: 24px; text-align: left;"><a href="https://www.blogger.com/%E2%80%9Dhttps://plus.google.com/10640354758883120445?rel=author%E2%80%9D">Jack Dikian</a></span></span></div>
</div>
Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-34646565834541860572011-10-05T23:55:00.000-07:002011-10-06T00:07:53.770-07:00The MINI-SCAMP MICROCOMPUTER<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2f6y9NG4rvT72v3reIaF3AA_d_ioiYq3fHCzit47r7SZsE1W8DGeh41H0QBU0YoZFyMxhVVs5mS8n_H0oUwFz9F-S_PeMMnJcTCx31dSaWqfo41J6vzNJ2jHJg0GXyFLvt3vE6xa0VrU/s1600/jack+dikian+miniscamp.jpeg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 134px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2f6y9NG4rvT72v3reIaF3AA_d_ioiYq3fHCzit47r7SZsE1W8DGeh41H0QBU0YoZFyMxhVVs5mS8n_H0oUwFz9F-S_PeMMnJcTCx31dSaWqfo41J6vzNJ2jHJg0GXyFLvt3vE6xa0VrU/s400/jack+dikian+miniscamp.jpeg" border="0" alt="" id="BLOGGER_PHOTO_ID_5660270632180938562" /></a><br /><div style="text-align: right;"><span class="Apple-style-span" style="font-family:'times new roman';"><b><span class="Apple-style-span" style="color:#FF0000;"><span class="Apple-style-span" style="font-size:x-large;">Jack Dikian</span></span></b></span></div><div style="text-align: right;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"><b><span class="Apple-style-span" style="color:#FF0000;">October 2011</span></b></span></span></div><div><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"><br /></span></span></div><div><!--StartFragment--> <p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">Today, like many others, I couldn’t but resist having a look at the new <span class="Apple-style-span" style="color:#FFCC66;">iPhone 4S</span> with all the expected hype and media frenzy. I was particularly interested in its specifications, and more specifically the new processor chipset it is using.<o:p></o:p></span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">According to reports the new iPhone is using the A5 chip, which is also used by the iPad 2. This is a <span class="Apple-style-span" style="color:#FFCC66;">dual-core Cortex A9 processor </span>which is said to be up to twice the speed of its predecessor. Also, the <span class="Apple-style-span" style="color:#FFCC66;">PowerVR SGX543MP GPU</span> embedded graphics accelerator is up to seven times faster than the GPU found inside the previous chipset. The A5 contains a rendition of chip based upon the dual-core ARM Cortex-A9 MPCore CPU manufactured by </span></span></span><span class="articletitle"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">Samsung.</span></span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span class="articletitle"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">Now the chips’ manufacture claim that the</span></span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"> performance optimized</span></span></span><span class="articletitle"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"> </span></span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">dual-core Cortex A9 can do 10,000 DMIPS (Dhrystone MIPS) at clock speeds of 2000 MHz. Remember that CPU performance is generally about the number of instructions it can execute in a time period (say a second) and the amount of actual work it can do in that period. </span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">The first is controlled by CPU architecture, memory speed, etc while the second has those as variables, as well as the effectiveness of its instruction set at doing the sort of typical application it is used in. The Cortex A9 processor runs the Dhrystone benchmark at about 2.50 DMIPS/MHz per core – an extremely efficient architecture at the sort of application the Dhrystone measures.</span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">The reason I’m taking an interested in this architecture isn’t so much about how Apple is using these processors as enablers in there consumer products, not that I’m complaining as I am and have been an Apple fan from the day I first used the <span class="Apple-style-span" style="color:#FFCC66;">Apple Lisa</span> at university. More so, because I was recently reminded of the very first computer I built when I was a teenager. At the time, anyone that was half-interested in electronics either built a micro-computer or an Amplifier of sort. My friends and I were more interested in wire-wraps, logic gates, LEDs, and nasty RF-modulators. The very slow and erratic cassette tape interface came much later thanks to <span class="Apple-style-span" style="color:#FFCC66;">Radio Shack</span> and the TRS-80.</span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">So as high school kids, my friends and I would catch the train from North Sydney to an electronics hobby store in Hornsby where we got to see an “expert” demonstrate his Mini-Scamp microcomputer and us using what little money we had to buy the components so that we can each build our own.</span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">The Mini-Scamp micro-computer was, I think, a <span class="Apple-style-span" style="color:#FFCC66;">Dick Smith Electronics</span> kit the design of which was published in "Electronics Australia". The Mini-Scamp was based on the SC/MP CPU from National Semiconductors and </span></span></span><i><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">boasted</span></span></span></i><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"> a [massive] 256 bytes of RAM. Yes, that’s all the memory it had. Just as a simple comparison my current iPhone 4 has 3,435,9738,368 bytes of memory.</span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">This nifty computer didn’t come with ROM so the idea of accessing an interpreter or a compiler was still, for us, years away. So we would load binary into RAM by requesting the data byte and address in binary using toggle switches. Pressing the deposit button stored the byte in memory. The LEDs showed the current contents of the memory location. After the program was entered this way a switch was flipped from DMA to Run mode and the micro did the rest.</span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">These days I sometimes have a little chuckle to myself when an IT helpdesk puts me on hold while trying to rectify a trivial password glitch – and wonder how they would cope if all they hav</span></span></span><span class="Apple-style-span"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">e to work with is a soldering iron, a bit of copper printed circuit board, and if really lucky a second hand CRO.</span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span style="font-size:11.0pt;"><o:p><span class="Apple-style-span" style="color:#999999;"> </span></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:11.0pt;"><o:p><span class="Apple-style-span" style="color:#999999;"> </span></o:p></span></p> <!--EndFragment--> </div>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-4506773543980983122011-07-01T00:10:00.000-07:002011-07-01T00:49:39.461-07:00Functional Grammar, Dikian Functional Grammar and Anaphora<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUIHXVmfR4Gd0Xo-zqO60Tbn1mlwNyLF4fw4ff9PG1YLsXSgstRrHAk7zx6WSaT6slquA3bh8ZpUrpak7J4ahCnwg6pNI40r2WhdQEHAxOD8OYXuDoBYUBSNtAGdtDRJrQShsceW1dah0/s1600/Dikian+Functional+Grammar.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUIHXVmfR4Gd0Xo-zqO60Tbn1mlwNyLF4fw4ff9PG1YLsXSgstRrHAk7zx6WSaT6slquA3bh8ZpUrpak7J4ahCnwg6pNI40r2WhdQEHAxOD8OYXuDoBYUBSNtAGdtDRJrQShsceW1dah0/s400/Dikian+Functional+Grammar.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5624287334121220066" /></a><br /><div><span class="Apple-style-span" style="font-family:'times new roman';"><br /></span></div><div style="text-align: right;"><b><span class="Apple-style-span" style="color:#FF0000;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:x-large;">Jack Dikian</span></span></span></b></div><div style="text-align: right;"><b><span class="Apple-style-span" style="color:#FF0000;"><span class="Apple-style-span" style="font-family:'times new roman';">July 2011</span></span></b></div><div><span class="Apple-style-span" style="font-family:'times new roman';"><br /></span></div><div><p class="MsoNormal"> </p><p style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;">Years ago I was involved in building a natural language processor which was to overlay an expert system dealing with the </span><span class="Apple-style-span" style="color:#FFCC66;">Pascal</span><span class="Apple-style-span" style="color:#999999;"> implemented on a PDP-11. For those not familiar with Pascal, it suffices to say here that it was an ideal teaching language - </span></span><span lang="EN"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;">encouraging good use of structured programming and data structuring. <span class="Apple-style-span" style="color:#FF0000;">Niklaus Wirth</span> published it in 1970. <o:p></o:p></span></span></span></p><p style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span lang="EN"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><br /></span></span></span></p> <p style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span lang="EN"><o:p><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"> </span></span></o:p></span></p> <p style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span lang="EN"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;">So, by far the biggest challenge was to </span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;">efficiently convert natural language expressions into machine-interpretable canonical representations. An ability to perform content analysis, fact-finding, question answering, inference, translation, and sense making, was necessary. Soon, the obvious became clear, that is the universe of features found in English (as in any natural language) is large, complex and potentially unbounded. With great effort, a simplified grammar and reduced set of words we produced a</span></span><span lang="EN"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"> recognizer of sort. <o:p></o:p></span></span></span></p><p style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span lang="EN"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><br /></span></span></span></p> <p style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span lang="EN"><o:p><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"> </span></span></o:p></span></p><p style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span lang="EN"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><o:p></o:p></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;">The reason I recount this is because of my interest in functional grammar as taught in schools and in particular </span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#FF0000;">Kaplan</span><span class="Apple-style-span" style="color:#999999;"> and </span><span class="Apple-style-span" style="color:#FF0000;">Bresnan</span><span class="Apple-style-span" style="color:#999999;">’s work in Lexical Functional Grammar and their treatment of functional structure analysis when looking at syntax. For example how the function structure encodes linguistic information about the various functional reactions between parts of a sentence.</span></span></p> <p class="MsoNormal" style="text-align: justify;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;">Now, I know much has been said about the benefits of teaching, and using what has been a controversial program - functional grammar. Years ago, teachers in particular who understand functional grammar were keen to see it maintained and used side-by-side with traditional grammar. Words such as "</span><span class="Apple-style-span" style="color:#FFCC66;">participant</span><span class="Apple-style-span" style="color:#999999;">", "</span><span class="Apple-style-span" style="color:#FFCC66;">process</span><span class="Apple-style-span" style="color:#999999;">" and "</span><span class="Apple-style-span" style="color:#FFCC66;">lexical chain</span><span class="Apple-style-span" style="color:#999999;">" would sit as comfortably as </span><span class="Apple-style-span" style="color:#FFCC66;">noun</span><span class="Apple-style-span" style="color:#999999;"> and </span><span class="Apple-style-span" style="color:#FFCC66;">verbs</span><span class="Apple-style-span" style="color:#999999;"> thus providing a way of describing how language is used, what language does and how it is applied. </span></span></p><p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;">Functional grammar emphasises the ways in which language functions to assist meaning, but also relies upon knowledge, understanding and the use of terms of traditional grammar see Fig 1.</span></span></p><p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;">See also: </span></span></p><p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"> <!--StartFragment--> </span></span></p><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><h1 style="margin:0cm;margin-bottom:.0001pt"><span lang="EN"><span class="Apple-style-span" style="font-weight: normal;"><span class="Apple-style-span" style="color:#FFCC66;"><span class="Apple-style-span" style="font-size: medium;">Deep </span></span></span></span><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="color:#FFCC66;"><span class="Apple-style-span" style="font-size: medium;">Anaphora</span></span><span class="Apple-style-span" style="font-size: medium;">, </span><span class="Apple-style-span" style="color:#FFCC66;"><span class="Apple-style-span" style="font-size: medium;">S</span></span></span><span lang="EN"><span class="Apple-style-span" style="font-weight: normal;"><span class="Apple-style-span" style="color:#FFCC66;"><span class="Apple-style-span" style="font-size: medium;">urface Anaphora</span></span><span class="Apple-style-span" style="font-size: medium;">, and </span></span></span><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="color:#FFCC66;"><span class="Apple-style-span" style="font-size: medium;">Null Anaphora</span></span></span></h1> <p class="MsoNormal"><span style="font-family:Arial;mso-bidi-font-family:Arial;"><o:p> </o:p></span></p> <!--EndFragment--> </span></span><p></p> <!--EndFragment--> <p></p> <!--EndFragment--> <p></p> <!--EndFragment--> <p></p> <!--EndFragment--> <p></p> <!--EndFragment--> </div>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-7214964563583675082011-06-30T01:13:00.000-07:002011-06-30T02:34:32.453-07:00Gödel's Letter To John<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOy6Pvta3iWW-6HrI_Frt-gCHU4ka659gGuqBf0armrDoaQomRoyMClWkIIlsPBJFA5e5AWGC1E9iACOWaAXBPDj7_KAvyzBj9ksvwByhtBIIQr1CEiAu1YZgd8wOvkTsv_2kDPuK39xQ/s1600/Godel_letter.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 355px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOy6Pvta3iWW-6HrI_Frt-gCHU4ka659gGuqBf0armrDoaQomRoyMClWkIIlsPBJFA5e5AWGC1E9iACOWaAXBPDj7_KAvyzBj9ksvwByhtBIIQr1CEiAu1YZgd8wOvkTsv_2kDPuK39xQ/s400/Godel_letter.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5623943844664169218" /></a><br /><div style="text-align: center;"><br /></div><div style="text-align: right;"><b><span class="Apple-style-span" style="color:#FF0000;"><span class="Apple-style-span" style="font-size:x-large;"><span class="Apple-style-span" style="font-family:'times new roman';">Jack Dikian</span></span></span></b></div><div style="text-align: right;"><b><span class="Apple-style-span" style="color:#FF0000;"><span class="Apple-style-span" style="font-family:'times new roman';">June 2011</span></span></b></div><div><span class="Apple-style-span" style="font-family:'times new roman';"><br /></span></div><div><!--StartFragment--> <h1><span lang="EN" style="font-size:12.0pt;mso-bidi-mso-ansi-language:ENfont-size:24.0pt;"><o:p><span class="Apple-style-span" style="font-family:'times new roman';"> </span></o:p></span></h1> <p class="MsoNormal" style="text-align:justify"><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">Whilst re-posting a review of </span></span></span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">Douglas </span></span></span><span style="display:none;mso-hide:all"><br /></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">Hofstadter’s </span></span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">Gödel, Escher, Bach: An Eternal Golden Braid</span></span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">, I visited a computability topic long been of interest - The P=NP question and </span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">Gödel’s</span></span></span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> famous 1956 letter to John </span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">von Neumann (<span class="Apple-style-span" style="color:#FF0000;">click the image for the hand written german text</span>)</span></span></span></span></p> <p class="MsoNormal" style="text-align:justify"><o:p><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></p> <p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">The P=NP question is one of the great problems of science, which has intrigued computer scientists and mathematicians for decades. </span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">In the first half of this century, work on the power of formal systems led to the formalization of the notion of algorithm and the realization that certain problems are algorithmically unsolvable.<o:p></o:p></span></span></span></span></p> <p class="MsoNormal" style="text-align:justify;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><o:p><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></span></p> <p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">NP stands for Non-deterministic Polynomial time meaning that a problem can be solved in Polynomial time using a Non-deterministic Turing machine (like a regular Turing machine but also including a non-deterministic "choice" function). Basically, a solution has to be </span></span></span><i><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">testable</span></span></span></i><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> in poly time. If that's the case, and a known NP problem can be solved using the given problem with modified input (an NP problem can be </span></span></span><i><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">reduced</span></span></span></i><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> to the given problem) then the problem is NP complete.<o:p></o:p></span></span></span></p> <p class="MsoNormal" style="text-align:justify"><o:p><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></p> <p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">The main thing to take away from an NP-complete problem is that it cannot be solved in polynomial time in any known way. NP-Hard/NP-Complete is a way of showing that certain classes of problems are not solvable in realistic time.</span></span><span class="Apple-style-span" style="font-family:'times new roman';"><o:p></o:p></span></span></p> <h1><span lang="EN"><o:p><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></span></h1> <h1><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"><span class="Apple-style-span" style="font-family:'times new roman';">The Gödel Letter</span><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-size:small;"><span class="Apple-style-span" style="font-family:'times new roman';">1</span></span></span></span></span></span></h1> <p><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">Princeton, 20 March 1956 <o:p></o:p></span></span></span></span></p> <p><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">Dear Mr. von Neumann: <o:p></o:p></span></span></span></span></p> <p style="text-align:justify"><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">With the greatest sorrow I have learned of your illness. The news came to me as quite unexpected. Morgenstern already last summer told me of a bout of weakness you once had, but at that time he thought that this was not of any greater significance. As I hear, in the last months you have undergone a radical treatment and I am happy that this treatment was successful as desired, and that you are now doing better. I hope and wish for you that your condition will soon improve even more and that the newest medical discoveries, if possible, will lead to a complete recovery. <o:p></o:p></span></span></span></span></p> <p style="text-align:justify"><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">Since you now, as I hear, are feeling stronger, I would like to allow myself to write you about a mathematical problem, of which your opinion would very much interest me: One can obviously easily construct a Turing machine, which for every formula F in first order predicate logic and every natural number n, allows one to decide if there is a proof of F of length n (length = number of symbols). </span></span></span></span></p><p style="text-align:justify"><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">Let ψ(F,n) be the number of steps the machine requires for this and let φ(n) = maxF ψ(F,n). The question is how fast φ(n) grows for an optimal machine. One can show that φ(n) ≥ k </span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">⋅</span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> n. If there really were a machine with φ(n) </span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">∼</span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> k </span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">⋅</span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> n (or even </span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">∼</span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> k </span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">⋅</span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> n</span></span></span><sup><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">2</span></span></span></sup><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">), this would have consequences of the greatest importance. Namely, it would obviously mean that in spite of the undecidability of the Entscheidungs problem, the mental work of a mathematician concerning Yes-or-No questions could be completely replaced by a machine. After all, one would simply have to choose the natural number n so large that when the machine does not deliver a result, it makes no sense to think more about the problem. Now it seems to me, however, to be completely within the realm of possibility that φ(n) grows that slowly. Since it seems that φ(n) ≥ k </span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">⋅</span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> n is the only estimation which one can obtain by a generalization of the proof of the undecidability of the Entscheidungs problem and after all φ(n) </span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">∼</span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> k </span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">⋅</span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> n (or </span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">∼</span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> k </span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">⋅</span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> n</span></span></span><sup><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">2</span></span></span></sup><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">) only means that the number of steps as opposed to trial and error can be reduced from N to log N (or (log N)</span></span></span><sup><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">2</span></span></span></sup><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">). </span></span></span></span></p><p style="text-align:justify"><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">However, such strong reductions appear in other finite problems, for example in the computation of the quadratic residue symbol using repeated application of the law of reciprocity. It would be interesting to know, for instance, the situation concerning the determination of primality of a number and how strongly in general the number of steps in finite combinatorial problems can be reduced with respect to simple exhaustive search. <o:p></o:p></span></span></span></span></p> <p style="text-align:justify"><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">I do not know if you have heard that “Post’s problem”, whether there are degrees of unsolvability among problems of the form (</span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">∃</span></span></span></span><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> y) φ(y,x), where φ is recursive, has been solved in the positive sense by a very young man by the name of Richard Friedberg. The solution is very elegant. Unfortunately, Friedberg does not intend to study mathematics, but rather medicine (apparently under the influence of his father). By the way, what do you think of the attempts to build the foundations of analysis on ramified type theory, which have recently gained momentum? You are probably aware that Paul Lorenzen has pushed ahead with this approach to the theory of Lebesgue measure. However, I believe that in important parts of analysis non-eliminable impredicative proof methods do appear. <o:p></o:p></span></span></span></span></p> <p style="text-align:justify"><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">I would be very happy to hear something from you personally. Please let me know if there is something that I can do for you. With my best greetings and wishes, as well to your wife, <o:p></o:p></span></span></span></span></p> <p class="MsoNormal"><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">Your very devoted,<o:p></o:p></span></span></span></span></p> <p class="MsoNormal"><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">Kurt <o:p></o:p></span></span></span></span><span class="Apple-style-span" style="color: rgb(192, 192, 192); "><span class="Apple-style-span" style="font-family:'times new roman';">Gödel</span></span></p><span class="Apple-style-span" style="font-family:'times new roman';"> </span><p class="MsoNormal"><span lang="EN"><o:p><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></span></p> <p class="MsoNormal"><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">P.S. I congratulate you heartily on the … </span></span></span></span><span lang="EN"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-size:small;"><span class="Apple-style-span" style="font-family:'times new roman';">2</span></span><span class="Apple-style-span" style="font-family:'times new roman';"><o:p></o:p></span></span></span></p><p class="MsoNormal"><span lang="EN"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-size:small;"><span class="Apple-style-span" style="font-family:'times new roman';"><br /></span></span></span></span></p> <p class="MsoNormal"><span lang="EN"><o:p><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></span></p> <p class="MsoNormal"><span lang="EN"><o:p><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></span></p> <p class="MsoNormal"><span lang="EN"><o:p><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></span></p> <p style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">1. The letter was indeed originally written in German. Mike Sipser’s translation can be found in “The History and the Status of the P versus NP Question”, in the 24th STOC proceedings, 1992, pp. 603-618. This also contains a number of other historical quotes. Peter Clote also made a translation to English, which can be found in the book “Arithmetic, Proof Theory and Computational Complexity”, P. Clote and J. Krajicek, eds., Oxford Univ. Press, 1993.<o:p></o:p></span></span></span></span></p> <p style="margin:0cm;margin-bottom:.0001pt"><span lang="EN"><o:p><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></span></p> <p class="MsoNormal"><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">2.</span></span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><span class="Apple-style-span" style="font-family:'times new roman';">The balance of the postscript is missing.</span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><o:p></o:p></span></span></p><p class="MsoNormal"><span lang="EN"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#C0C0C0;"><br /></span></span></span></span></p> <p style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:-7.1pt; margin-bottom:.0001pt;tab-stops:list -7.1pt"><span lang="EN" style="mso-ansi-language: EN"><o:p> </o:p></span></p> <!--EndFragment--> </div>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com1tag:blogger.com,1999:blog-4516875794785365515.post-38779975202498124042011-04-16T00:03:00.000-07:002011-08-17T02:07:17.511-07:00Fermat's Last Theorem<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLp-JR7DUpnubm8Z56ovH-vVUqLZi8hc1eEL5ad9dchW0CBTvDtDH9gM06JQJ1PBf8tjk3fih8Ncf-URibFUrsSySAO6Nivy-I1Capw3PlaLH3nwbkaSyGusQu8B1Ov_DjTGKXhyphenhyphen18aNg/s1600/jack+dikian.jpg"><img id="BLOGGER_PHOTO_ID_5615319184870381362" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 400px; CURSOR: hand; HEIGHT: 300px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLp-JR7DUpnubm8Z56ovH-vVUqLZi8hc1eEL5ad9dchW0CBTvDtDH9gM06JQJ1PBf8tjk3fih8Ncf-URibFUrsSySAO6Nivy-I1Capw3PlaLH3nwbkaSyGusQu8B1Ov_DjTGKXhyphenhyphen18aNg/s400/jack+dikian.jpg" border="0" /></a>
<br />
<br /><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNp_O7IAe3X5OLj2ch0FexssqEkcHJh7Q0ecD3Kw1kU5BlE6t5xto3rfQnC6BPY0Pgh8VUStsA36_q1_2bLnL2fW-l2-2kfngFI28fLTok9VHbK0QqDV9H68L4tIL7SU6r70pjw4Wki1w/s1600/jack+dikian.jpg"></a>
<br />
<br />
<br /><div>
<br />
<br />
<br /><div style="TEXT-ALIGN: right"><b><span class="Apple-style-span" style="color:#ff0000;"><span class="Apple-style-span" style="font-size:x-large;"><span class="Apple-style-span" style="font-family:'times new roman';">Jack Dikian</span></span></span></b> </div>
<br /><div style="TEXT-ALIGN: right"><b><span class="Apple-style-span" style="color:#ff0000;"><span class="Apple-style-span" style="font-size:small;"><span class="Apple-style-span" style="font-family:'times new roman';">April 2011</span></span></span></b><span class="Apple-style-span" style="font-family:'times new roman';"> </span></div>
<br /><div>
<br />
<br /><p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; TEXT-ALIGN: justify; mso-pagination: none; mso-layout-grid-align: none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">Fermat's last theorem is a theorem first proposed by </span></span><span class="Apple-style-span" style="color:#ff0000;"><span class="Apple-style-span" style="font-size:medium;">Fermat</span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"> in the form of a note scribbled in the margin of his copy of the ancient Greek text </span></span><span class="Apple-style-span" style="color:#ffcc66;"><span class="Apple-style-span" style="font-size:medium;">Arithmetica</span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">. </span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">In 1637 he famously wrote in the margin of Arithmetica that he had discovered the proof however it was too large to fit in the margin. <o:p></o:p></span></span></span></span></p><div style="text-align: justify;">
<br /></div><p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; TEXT-ALIGN: justify; mso-pagination: none; mso-layout-grid-align: none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">“</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">I have discovered a truly remarkable proof which this margin is too small to contain”.</span></span></span></span></p><p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; TEXT-ALIGN: justify; mso-pagination: none; mso-layout-grid-align: none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">Fermat's Last Theorem states that x</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">n</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"> + y</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">n</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"> = z</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">n</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"> has no non-zero integer solutions for x, y and z when n >2. <o:p></o:p></span></span></span></span></p><p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; TEXT-ALIGN: justify; mso-pagination: none; mso-layout-grid-align: none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">Despite the efforts of many mathematicians, it took another 350 years for a proof to be developed. The British mathematician <span class="Apple-style-span" style="color:#ff0000;">Andrew Wiles</span> spent almost 6 years developing a proof that he published in 1993. However, by mid</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"> 1993, a bombshell was dropped. Several mathematicians began finding faults in the proof when </span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">refereeing Wiles' manuscript.</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"> The faults were finally repaired by Wiles and</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"> his former student <span class="Apple-style-span" style="color:#ff0000;">Richard Taylor</span> </span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">in late 1994.</span></span></span></span></p><div style="text-align: justify;">
<br /></div><span lang="EN-US"><div style="text-align: justify;"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">The question remains today, had Fermat discovered a proof in the seventieth century. The proof by Wiles and Taylor utilized mathematics not available to Fermat. </span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">Ribet's proof of the epsilon conjecture in 1986 accomplished the first half of Frey's strategy for proving Fermat's Last Theorem. Wiles set off to prove the other half.</span></span></span></span></div></span>
<br /><p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; TEXT-ALIGN: justify; mso-pagination: none; mso-layout-grid-align: none"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">For example,</span></span></span></p><ul>
<br /><li><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">Taniyama-Shimura conjecture for semistable elliptic curves.</span></span></span>
<br /></li>
<br /><li><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">Horizontal Iwasawa theory</span></span></span></li>
<br /><li><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">Euler system</span></span></span></li>
<br /><li><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">Selmer groups</span></span></span></li>
<br /><li><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;">Modular elliptic curves</span></span></span></li></ul>
<br />
<br />
<br />
<br />
<br />
<br /><p></p>
<br />
<br />
<br />
<br />
<br />
<br /><p class="MsoNormal" style="MARGIN-BOTTOM: 0pt; TEXT-ALIGN: justify; mso-pagination: none; mso-layout-grid-align: none"><span lang="EN-US"><o:p><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#999999;"></span></span></o:p></span></p><!--EndFragment--></div></div></div>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-80027860101287572222011-04-06T02:18:00.000-07:002011-04-06T02:35:04.712-07:00Learning From Ants<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNxJdFkV6Da-pVaiWlQA-VWqnsTPicIYZdnOk-M6S5k_g5Y5yb0HfnJJUOB4LNoZr91X3DDK4HO1OlA7cekcWfF4tjouZSlitaUHJLLVH2XUFElI56ZuPy1CRRfHozVABLmlEFE9fJyxs/s1600/Dikian.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 172px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNxJdFkV6Da-pVaiWlQA-VWqnsTPicIYZdnOk-M6S5k_g5Y5yb0HfnJJUOB4LNoZr91X3DDK4HO1OlA7cekcWfF4tjouZSlitaUHJLLVH2XUFElI56ZuPy1CRRfHozVABLmlEFE9fJyxs/s200/Dikian.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5592401743860256626" /></a><br /><div style="text-align: right;"><span class="Apple-style-span" style="color:#FF0000;"><span class="Apple-style-span" style="font-family:'times new roman';"><b><span class="Apple-style-span" style="font-size:x-large;">Jack Dikian</span></b></span></span></div><div style="text-align: right;"><span class="Apple-style-span" style="color:#FF0000;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:small;"><b>April 2011</b></span></span></span></div><div><br /></div><div><span class="Apple-style-span" style="font-family:'times new roman';font-size:medium;"><b><span class="Apple-style-span" style="color:#FF0000;">Ants</span></b></span></div><div><span class="Apple-style-span" style=" ;font-family:'times new roman';font-size:medium;"><b><span class="Apple-style-span" style="color:#333333;"><br /></span></b></span></div><div> <p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span class="normal-c11"><span lang="EN"><o:p><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></span></span></p> <p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span class="normal-c11"><span lang="EN"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';">We’ve all come across a line of ants seemingly marching to and from their nest and food. Some of us may have even owned an ant farm created between 2 panes of glass. Like all, besides the idea that we don’t want them in our house, we have probably also marveled at their ingenuity and keenness for social behavior in order to survive and thrive. <o:p></o:p></span></span></span></span></span></p><p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span class="normal-c11"><span lang="EN"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"><br /></span></span></span></span></span></p> <p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><o:p><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></p> <p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';">In fact one of the greatest advantages for ants is their social behaviour - working as a colony with specialized duties, they are more efficient than insects in getting necessary things done.<o:p></o:p></span></span></span></p><p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"><br /></span></span></span></p> <p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><o:p><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></p> <p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><b><o:p><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></b></p> <p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#FF0000;">Communicating and Learning their way to food</span><o:p></o:p></span></span></b></p><p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#333333;"><br /></span></span></span></b></p> <p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><o:p><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></p> <p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';">Ants form and maintain a line to their food source by laying a trail of pheromone, i.e. a chemical to which other members of the same species are very sensitive. They deposit a certain amount of pheromone while walking, and each ant prefers to follow a direction rich in pheromone. This enables the ant colony to quickly find the shortest route. The first ants to return should normally be those on the shortest route, so this will be the first to be doubly marked by pheromone (once in each direction). Thus other ants will be more attracted to this route than to longer ones not yet doubly marked, which means it will become even more strongly marked with pheromone. Soon, therefore, nearly all the ants will choose this route. Here, </span></span></span><span lang="EN"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';">ants are using the environment as a medium of communication.</span></span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"><o:p></o:p></span></span></span></p><p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span lang="EN"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"><br /></span></span></span></span></p> <p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><o:p><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></p> <p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';">Studying this uncanny skill has enabled researchers to create </span></span></span><span lang="EN"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';">algorithms aimed to search optimal paths in graphs, and applied to applications such </span></span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';">as rerouting traffic in busy communications network.<o:p></o:p></span></span></span></p><p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"><br /></span></span></span></p> <p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><o:p><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></p> <p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><b><o:p><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></b></p> <p class="main" style="margin:0cm;margin-bottom:.0001pt;text-align:justify"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#FF0000;">Us learning from ants</span><o:p></o:p></span></span></b></p> <p class="MsoNormal" style="text-align: justify;"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';">In computing research </span></span></span><b><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';">ant colony optimization</span></span></span></b><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> algorithm (part of swarm intelligence methods) is a probabilistic technique for solving computational problems which can be reduced to finding good paths through graphs. Graphs are mathematical structures used to model pair-wise relations between objects in a collection.</span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';">Whilst the first algorithm was aiming to search for an optimal path in a graph based on the behavior of ants, this idea has since diversified to help solve a wider class of numerical problems.</span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span lang="EN"><o:p><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></span></p> <p class="MsoNormal" style="text-align:justify"><b><span lang="EN"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="color:#FF0000;">Application</span><o:p></o:p></span></span></span></b></p> <p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';">The use of the ant colony optimization algorithms has produced near-optimal solutions to the travelling salesman problem.</span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';">The travelling salesman problem is one of the most intensively studied problems in computational mathematics – that is finding the shortest route visiting each member of a collection of locations and returning to the start. Even rewards are offered in various forums encouraging solutions to this problem. For example,</span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';">In February 2009, Robert Bosch (Oberlin College) created a 100,000-city instance of the travelling salesman problem that provides a representation of Leonardo da Vinci's Mona Lisa as a continuous-line drawing. An optimal solution to the 100,000-city Mona Lisa instance would set a new world record for the travelling salesman problem – and $1000 prize.</span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';">Because ant</span></span></span><span lang="EN"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> colony optimization algorithm can be run continuously and adapt to changes in real time, this gives them an advantage over simulated information annealing (which all users of the system are permitted to change the system) and genetic algorithms. Network routing, urban transportation systems and resource-constrained project scheduling are areas with an interest in this type of algorithms.</span></span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span lang="EN"><o:p><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span></o:p></span></p> <!--EndFragment--> </div>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-47319129141005539162011-01-14T23:12:00.001-08:002011-01-15T02:35:45.279-08:00Halting Problem - Turing's proof<div style="text-align: right;"><span class="Apple-style-span" style="color:#FF0000;"><b><span class="Apple-style-span" style="font-size:x-large;"><span class="Apple-style-span" style="font-family:'times new roman';">Jack Dikian</span></span></b></span></div><div style="text-align: right;"><span class="Apple-style-span" style="color:#FF0000;"><span class="Apple-style-span" style="font-size:medium;"><b>January 2011</b></span></span></div><div><br /></div><div><br /></div><div style="text-align: justify;"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">A few days ago, I started reading <span class="Apple-style-span" style="color:#CC0000;">David Leavitt</span>’s book “<span class="Apple-style-span" style="color:#CC0000;">The Man Who Knew Too Much – Allan Turning and the invention of the computer</span> – 2007” and almost by coincidence met up with an old Uni friend – recalling the countless hours we spent discussing esoteric problems in philosophy and mathematics.</span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"> </span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">Turning machines was a big favorite – universal, and easy to code. Another was the halting problem. Easy enough to understand, and the proof for its insolvability was provided by Turing in 1936.</span></span></span></div><div> <p class="MsoNormal" style="text-align: justify;margin-bottom: 0.0001pt; "><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">I wanted to revisit this problem and present it in a form that avoids the deeper symbolic language of set theory.</span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;text-align: justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">In computability theory, the </span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">halting problem</span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"> is a decision problem, deciding, given a program and an input, whether the program will eventually halt when run with that input, or whether it will run forever.</span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;text-align: justify;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">In 1936 Alan Turing proved that a general algorithm to solve the halting problem for </span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">all</span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"> possible program-input pairs cannot exist. It is said that the halting problem is </span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">un-decidable</span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"> over Turing machines.</span></span></span></p> <p class="MsoNormal" style="text-align: justify;margin-bottom: 0.0001pt; "><b><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">Formal Convention</span></span></span></span></b></p> <p class="MsoNormal" style="text-align: justify;margin-bottom: 0.0001pt; "><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">The formal representation of decision problem(s) is the set of objects possessing the property in question. The </span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">halting set is represented by</span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC0000;">K</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC0000;"> := { (</span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC0000;">i</span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC0000;">, </span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC0000;">x</span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC0000;">) | program </span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC0000;">i</span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC0000;"> will eventually halt if run with input </span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC0000;">x</span></span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">And this set is recursively enumerable. I.e, there is a computable function that lists all of the pairs (</span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">i</span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">, </span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">x</span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">) it contains.</span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><b><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">In practice</span></span></span></span></b></p> <p class="MsoNormal" style="text-align: justify;margin-bottom: 0.0001pt; "><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">Programs may contain loops which may be infinite or finite in length. The amount of work done in any program will depend on the input. Programs may also consist of various numbers of loops, nested or in sequence.</span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><b><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">Trial solution</span></span></span></span></b></p> <p class="MsoNormal" style="text-align: justify;margin-bottom: 0.0001pt; "><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">We can just run the program with the given input. If the program stops, we know the program stops. But what if the program doesn't stop in a reasonable amount of time, what are we to conclude. We are not able to conclude that it won't stop. </span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><b><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">A look at the proof</span></span></span></span></b></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">Suppose you have a solution to the halting problem called H. H takes two inputs:</span></span></span></p><p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><br /></span></span></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:36.0pt;margin-bottom:.0001pt;text-indent:-36.0pt;mso-pagination: none;mso-list:l0 level1 lfo1;tab-stops:11.0pt 36.0pt;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">1.</span></span></span><span style="font:7.0pt "Times New Roman""><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"> </span></span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">a program P and<o:p></o:p></span></span></span></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:36.0pt;margin-bottom:.0001pt;text-indent:-36.0pt;mso-pagination: none;mso-list:l0 level1 lfo1;tab-stops:11.0pt 36.0pt;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">2.</span></span></span><span style="font:7.0pt "Times New Roman""><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"> </span></span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">an input I for the program P.<o:p></o:p></span></span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">H generates an output "</span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">halt</span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">" if H determines that P stops on input I or it outputs "</span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">loop</span></span></span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">" otherwise.</span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;">Fig, 1</span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span lang="EN-US"><o:p><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"> </span></span></o:p></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:21.3pt;margin-bottom:.0001pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"> </span></span><b><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">Prog P ----------</span></span></span></b></span><span lang="EN-US"><b><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">></span></span></span></b></span><span lang="EN-US"><b><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"><o:p></o:p></span></span></span></b></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:21.3pt;margin-bottom:.0001pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><o:p><b><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></span></b></o:p></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:21.3pt;margin-bottom:.0001pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><b><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></span></span><span class="Apple-style-span" style="color:#FFCC66;">---------</span></span></span></b></span><span lang="EN-US"><b><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">></span></span></span></b></span><span lang="EN-US"><b><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></span></b><b><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">“Loop” or “halt”<o:p></o:p></span></span></span></b></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:21.3pt;margin-bottom:.0001pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><o:p><b><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></span></b></o:p></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:21.3pt;margin-bottom:.0001pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><b><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></span></b><b><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">Input 1 ---------</span></span></span></b></span><span lang="EN-US"><b><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">></span></span></span></b></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="text-align: justify;margin-bottom: 0.0001pt; "><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">So now H can be revised to take P as both inputs (the program and its input) and H should be able to determine if P will halt on P as its input. </span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">Let us construct a new, simple algorithm K that takes H's output as its input and does the following</span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span lang="EN-US"><o:p><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"> </span></span></span></o:p></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:36.0pt;margin-bottom:.0001pt;text-indent:-36.0pt;mso-pagination: none;mso-list:l1 level1 lfo2;tab-stops:11.0pt 36.0pt;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">1.</span></span></span><span style="font:7.0pt "Times New Roman""><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"> </span></span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">if H outputs "</span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">loop</span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">" then K halts,<o:p></o:p></span></span></span></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:36.0pt;margin-bottom:.0001pt;text-indent:-36.0pt;mso-pagination: none;mso-list:l1 level1 lfo2;tab-stops:11.0pt 36.0pt;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">2.</span></span></span><span style="font:7.0pt "Times New Roman""><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"> </span></span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">otherwise H's output of "</span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">halt</span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">" causes K to loop forever.<o:p></o:p></span></span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">That is, K will do the </span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">opposite</span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"> of H's output.</span></span></span></p><p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"><br /></span></span></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:21.3pt;margin-bottom:.0001pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><o:p><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></span></o:p></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:21.3pt;margin-bottom:.0001pt;text-indent:21.3pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">function K() {<o:p></o:p></span></span></b></span></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:21.3pt;margin-bottom:.0001pt;text-indent:21.3pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></b></span><span class="Apple-style-span" style="font-family:'times new roman';"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">if (H()=="loop"){<o:p></o:p></span></span></b></span></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:21.3pt;margin-bottom:.0001pt;text-indent:21.3pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></b></span><span class="Apple-style-span" style="font-family:'times new roman';"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">return;<o:p></o:p></span></span></b></span></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:21.3pt;margin-bottom:.0001pt;text-indent:21.3pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></b></span><span class="Apple-style-span" style="font-family:'times new roman';"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">} else {<o:p></o:p></span></span></b></span></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:21.3pt;margin-bottom:.0001pt;text-indent:21.3pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></b></span><span class="Apple-style-span" style="font-family:'times new roman';"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">while(true); //loop forever<o:p></o:p></span></span></b></span></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:21.3pt;margin-bottom:.0001pt;text-indent:21.3pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></b></span><span class="Apple-style-span" style="font-family:'times new roman';"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">}<o:p></o:p></span></span></b></span></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:21.3pt;margin-bottom:.0001pt;text-indent:21.3pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;">}</span></span></b><span class="Apple-style-span" style="color:#999999;"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:21.3pt;margin-bottom:.0001pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><o:p><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"> </span></span></span></o:p></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">Fig 2</span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span lang="EN-US"><o:p><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"> </span></span></o:p></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:35.45pt;margin-bottom:.0001pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> <span class="Apple-tab-span" style="white-space:pre"> </span> <span class="Apple-tab-span" style="white-space:pre"> </span> <span class="Apple-tab-span" style="white-space:pre"> </span> <span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#CC0000;"> </span></span><span class="Apple-style-span" style="color:#CC0000;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#CC0000;"> </span><span class="Apple-tab-span" style="white-space:pre"> </span></span></span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">----</span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">></span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></span></span></span></span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">True</span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> </span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">------> Halt</span></b></span></span></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:35.45pt;margin-bottom:.0001pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> P ------------</span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">H</span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> </span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">------</span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">></span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> Loop ?</span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> </span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">---</span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">></span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> False ----- > Loop <o:p></o:p></span></b></span></span></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:35.45pt;margin-bottom:.0001pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"><b></b></span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> -----</span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">></span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span lang="EN-US"><o:p><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"> </span></span></o:p></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">Since K is a program, let us use K as the input to K.</span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">Fig 3</span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span lang="EN-US"><o:p><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"> </span></span></o:p></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:35.45pt;margin-bottom:.0001pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b> <span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></span></span><span class="Apple-style-span" style="color:#FFCC66;">----</span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">></span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></span></span></span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">True ---------</span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">></span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> Halt<o:p></o:p></span></b></span></span></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:35.45pt;margin-bottom:.0001pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">K</span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> </span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">-----------</span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> </span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">H</span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> </span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">---></span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> </span></b></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"><b></b></span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">Loop ---> False --------</span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">></span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> Loop<o:p></o:p></span></b></span></span></span></p> <p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:35.45pt;margin-bottom:.0001pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC66;"><b></b></span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;"> </span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="color:#FFCC66;"> </span></span><span class="Apple-style-span" style="color:#FFCC66;">----</span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;">></span></b></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> <o:p></o:p></span></b></span></span></span></p> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"><span lang="EN-US"><o:p><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><b><span class="Apple-style-span" style="color:#FFCC66;"> </span></b></span></span></o:p></span></p> <p class="MsoNormal" style="text-align: justify;margin-bottom: 0.0001pt; "><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">If H says that K halts then K itself would loop (that's how we constructed it). If H says that K loops then K will halt. </span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">In either case H gives the wrong answer for K. </span></span></span><span class="Apple-style-span" style="font-family:'times new roman';"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;">Thus H cannot work in all cases.</span></span></span></p> <!--EndFragment--> </div><div> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt"><span style="Times New Roman";mso-ansi-language:EN-AUfont-family:";"><o:p> </o:p></span></p> <!--EndFragment--> </div>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-10290402947092810052010-09-08T20:47:00.000-07:002010-09-08T21:04:10.674-07:00Computing the “Theory of everything” (Strings)<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZM1DQpGyquag9VKsy6AJcn6cJrEzx8QQGxcsbiRqB7KLepSMkzuS5HHaIHzPK1vdwnrvdRY2Egi0jC7Go_e7aejFXcls_A5JbUqJv_0mjHubD4raZXrQeXphKgN62JGhyphenhyphenPi5qtE9E4TE/s1600/wp-string_theory[1].png"><img id="BLOGGER_PHOTO_ID_5514757911655137218" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 200px; CURSOR: hand; HEIGHT: 193px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZM1DQpGyquag9VKsy6AJcn6cJrEzx8QQGxcsbiRqB7KLepSMkzuS5HHaIHzPK1vdwnrvdRY2Egi0jC7Go_e7aejFXcls_A5JbUqJv_0mjHubD4raZXrQeXphKgN62JGhyphenhyphenPi5qtE9E4TE/s200/wp-string_theory%5B1%5D.png" border="0" /></a><br /><div align="right"><span style="font-family:arial;font-size:130%;color:#ff9900;"><strong>Jack Dikian</strong></span></div><br /><div align="justify"><span style="font-family:arial;"><span style="color:#999999;">String theory was originally developed to describe the fundamental particles and forces that make up our universe. New research, led by a team from Imperial College London, describes the unexpected discovery that string theory also seems to predict the behavior of entangled quantum particles. As this prediction can be tested in the laboratory, researchers can now test string theory.<br /></span><br /></span><span style="font-family:arial;"><span style="color:#ff9900;"><strong>Before strings<br /></strong></span><br /><span style="color:#999999;">String theory is the most recent attempt to reconcile</span> <span style="color:#ff0000;">quantum mechanics</span> <span style="color:#999999;">and general relativity. It's the first candidate for the theory of everything, a manner of describing the known fundamental forces and matter in a mathematically complete system.<br /><br />We learned in school that matter is made of atoms, which are in turn made of just three basic components: electrons [spinning] around a nucleus composed of neutrons and protons. In chemistry, some of us also learned that generally, there are as many neutrons as are protons in any nucleus of an atom. There are however isotopes where their nucleus contains an uneven mix of protons and neutrons.<br /><br />It was quite comfortable for us to think of the atom in this way – somewhat reminiscent of planets revolving around the sun. The students that had a special interest in physics went on to discover that the electron is a truly a fundamental particle (it is one of a family of particles known as leptons), but neutrons and</span> <span style="color:#999999;">protons are made of smaller particles, known as</span> <span style="color:#ff0000;">quarks</span>. <span style="color:#999999;">Quarks are, as far as we now know, also elementary particles.<br /></span><br /><span style="color:#999999;">The universe is made up of atoms and forces through which atoms interact.<br /><br />Our current knowledge about the subatomic composition of the universe is summarized in what is known as the</span> <strong><span style="color:#ff0000;">Standard Model</span></strong> <span style="color:#999999;">of particle physics. It describes both the fundamental building blocks out of which the universe is made, and the forces through which these blocks interact. There are twelve basic building blocks:-<br /></span><br /><span style="color:#999999;">Six of these are quarks which go by the interesting names of</span> <span style="color:#ff0000;">up</span>, <span style="color:#ff0000;">down</span>, <span style="color:#ff0000;">charm</span>, <span style="color:#ff0000;">strange</span>, <span style="color:#ff0000;">bottom </span><span style="color:#999999;">and</span> <span style="color:#ff0000;">top</span>. <span style="color:#999999;">A proton incidentally, is made of two up quarks and one down.<br /><br />The other six are</span> <span style="color:#ff0000;">Leptons</span> <span style="color:#999999;">and include the electron and its two heavier siblings, the</span> <span style="color:#ff0000;">Muon</span> <span style="color:#999999;">and the</span> <span style="color:#ff0000;">Tauon</span>, <span style="color:#999999;">as well as three neutrinos</span>.<br /><br /><span style="color:#999999;">There are four fundamental forces in the universe:<br /></span><br /></span><span style="font-family:arial;"><span style="color:#ff0000;"><span style="color:#999999;">§</span> Gravity,<br /><span style="color:#999999;">§</span> Electromagnetism,<br /><span style="color:#999999;">§</span> the Weak and<br /><span style="color:#999999;">§</span> Strong nuclear forces also known as the colour force.</span><br /><br /><span style="color:#999999;">Each of these is produced by fundamental particles that act as carriers of the force. The most familiar of these is the photon, a particle of light, which is the mediator of electromagnetic forces. (This means that, for instance, a magnet attracts a nail because both objects exchange photons.) The</span> <span style="color:#ff0000;">graviton</span> <span style="color:#999999;">is the particle associated with gravity. The strong force is carried by eight particles known as</span> <span style="color:#ff0000;">gluons</span>. <span style="color:#999999;">Finally, the weak force is transmitted by three particles, the W+, the</span> <span style="color:#ff0000;">W-</span>, <span style="color:#999999;">and the</span> <span style="color:#ff0000;">Z</span>. </span></div><div align="justify"><span style="font-family:arial;"></span></div><div align="justify"><span style="font-family:arial;"><span style="color:#999999;"></span></span> </div><div align="justify"><span style="font-family:arial;"><span style="color:#999999;">We all recognize 2 forces very well – gravity and electromagnetism. We feel the pull of gravity and we use the force of gravity in our day to day lives. Some of us have also played with magnets and appreciate their pull force. The behaviour of the week and strong nuclear forces isn’t one that we observe in every day life. These operate at the subatomic level and bind sub particles with varying degree of strength. The strength of the strong nuclear force, for example, is many magnitudes greater than that of gravity on Earth. If the pull of gravity on was that of the strong nuclear force – we would weigh many trillions more than our current weight.<br /><br />We use what we call the Standard Model to describe the interaction of sub-particles and forces with great success. This is, however, with one notable exception - gravity. The gravitational force has proven very difficult to describe microscopically. This has been for many years one of the most important problems in theoretical physics. That is to formulate a single model that describes both the micro and macro elements of the universe. Einstein attempted to unify the general theory of relativity (macro) with electromagnetism using a single field, hoping to recover an approximation for quantum theory. A "theory of everything" is closely related to unified field theory, and also attempts to explain all physical constants of nature.<br /><br /></span></span><span style="font-family:arial;"><span style="color:#999999;"><strong><span style="color:#ff6600;">Strings </span><br /></strong><br />In the last 20 or so years string theory has emerged as a promising model in attempts to provide a complete, unified, and consistent description of the fundamental structure of our universe, another “</span><span style="color:#ff0000;">Theory of Everything</span><span style="color:#999999;">”.</span><br /><br /><span style="color:#999999;">The basic idea is that all of the components of the Standard Model are just different manifestations of one basic element - a string. One way to think about this is by imagining an electron to be a tiny loop of string rather than a single zero-dimensional point. The loop (string) can as well as moving, oscillate in different ways. It is the way strings oscillate that determine the type of subatomic building blocks we recognize. So one kind of oscillation may be an electron whilst another oscillation may be regarded as a photon. This means, if true</span><br /><br /></span><span style="font-family:arial;"><strong><span style="color:#ff9900;">The entire universe is made of strings<br /></span></strong><br /><span style="color:#999999;">In recent years many developments have taken place, radically improving our understanding of what the theory is. String theories also require the existence of several extra, unobservable, dimensions to the universe, in addition to the usual four space-time dimensions.<br /></span><br /><span style="color:#999999;">Five major string theories have been formulated with the main differences between them, being the number of dimensions in which the strings are developed within and their characteristics. In the mid 1990s a unification of all previous</span> <span style="color:#ff0000;">superstring</span> <span style="color:#999999;">theories, called</span> <span style="color:#ff0000;">M-theory</span>, <span style="color:#999999;">has been proposed, which asserted that strings are really 1-dimensional slices of a 2-dimensional membrane vibrating in 11-dimensional space.</span></span></div><br /><div align="justify"></div>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-77777479916414391922010-08-09T18:51:00.000-07:002010-08-25T01:04:45.410-07:00The Rubik Cube and God's Algorithm<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKNIVuBmeyEpGOuKxdi5bRYVMLOSkswpznwbKTca7AL3lpG6HXUSaW4HXD_ODCDVxLxUAu1dS3Pezt-53hgvMNbne8ICpHbhuMOcuS9kWEpB3SYLJDaoiRh1JbDkAlv8D7XJIUnXXeeQg/s1600/rubiks_cube_solved[1].jpg"><img id="BLOGGER_PHOTO_ID_5503596786675649426" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 192px; CURSOR: hand; HEIGHT: 200px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKNIVuBmeyEpGOuKxdi5bRYVMLOSkswpznwbKTca7AL3lpG6HXUSaW4HXD_ODCDVxLxUAu1dS3Pezt-53hgvMNbne8ICpHbhuMOcuS9kWEpB3SYLJDaoiRh1JbDkAlv8D7XJIUnXXeeQg/s200/rubiks_cube_solved%5B1%5D.jpg" border="0" /></a><br /><div align="right"><span style="color:#cc0000;"></span><br /><span style="font-family:arial;font-size:130%;color:#cc0000;"><strong>Jack Dikian</strong></span><br /></div><div align="right"><span style="font-family:arial;"><span style="color:#cc0000;"><strong><span style="font-size:78%;">Sep 2006</span></strong><br /></span></span></div><span style="font-family:arial;"></span><br /><span style="font-family:arial;"><div align="right"><br /></div><div align="right"><strong><span style="font-family:arial;"><span class="Apple-style-span" style="color:#CC9933;"><span class="Apple-style-span" style="font-size:large;">Introduction</span></span><br /></span></strong></div><strong></strong></span><strong></strong><br /><div align="justify"><br /><span style="font-family:arial;"><span style="color:#999999;">In 1974 Erno Rubik, an admirer of geometry and 3-D forms created the world's most perfect puzzle. More than 30 years later the Rubik's cube is still a best selling brainteaser. By the mid-eighties almost every child had the puzzle. Did I say “Child”? I certainly was playing with one when I was about 12 or 13 with little success in solving.<br /><br />So you can imagine our astonishment when a whole first year pure mathematics class was asked to go out and purchase the puzzle from the university co-op bookshop. I think, like others, I had always suspected that there would a mathematical approach to solving the puzzle. After all, many real-world, albeit, obscure problems such as the four-color map(1) and The Seven Bridges of Konigsberg(2) inspired rigorous mathematical solutions. I, off course didn’t have the mathematical repertoire – instead the brute force method, not in the mathematical sense, was always adopted.<br /></span><br /></span><span style="font-family:arial;"><strong><span class="Apple-style-span" style="color:#CC9933;"><span class="Apple-style-span" style="font-size:large;">Background</span></span><br /></strong><br /><span style="color:#999999;">The Rubik’s Cube has a straightforward basis. The faces of the cube are covered by nine stickers in six colours. The puzzle is solved, when each face is of one solid colour. When you start to rotate the rows and columns and see the different mix of colour rows/columns you begin to appreciate the difficulty involved. There is, in-fact, 43 million million possible pattern combinations - but just one right one.<br /><br />it's been proven that you can solve a Rubik's cube in 26 moves. Computer science professor Gene Cooperman and graduate student Dan Kunkle of the Northeastern University in Boston used algebra and fast parallel computing to show that no matter how scrambled the cube is, it is possible to solve (generate a cube with solid colors on each face, or the home state) in 26 steps. There are however claims that it can be solved in 22 or even 20 steps (see later).<br /><br />The Rubik's cube has served as a guinea pig for testing techniques to solve large-scale combinatorial problems. "The Rubik's cube has been a testing ground for problems of search and enumeration. Search and enumeration is a large research area encompassing many researchers working in different disciplines — from artificial intelligence to operations. The Rubik's cube allows researchers from different disciplines to compare their methods on a single, well-known problem.</span></span></div><div align="justify"><span style="font-family:arial;"><span style="color:#999999;"><br /></span></span><span style="font-family:arial;"><span style="color:#999999;"><strong><span class="Apple-style-span" style="color:#CC9933;"><span class="Apple-style-span" style="font-size:large;">Mathematically</span></span><span class="Apple-style-span" style="color:#CC9933;"><span class="Apple-style-span" style="font-size:large;"> </span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC9933;"><br /></span></span></strong><br />There are many algorithms to solve scrambled Rubik's cubes. It is not known how many moves is the minimum required to solve any instance of the Rubik's cube, although the latest claims put this number at 22. This number is also known as the diameter of the Cayley graph of the Rubik's Cube group. An algorithm that solves a cube in the minimum number of moves is known as <strong>'God's algorithm'</strong>. Most mathematicians think it may only takes 20 moves to solve any Rubik's cube – and it’s a question of proving this to be true.</span></span></div><div align="justify"><div style="text-align: left;"><br /></div><span style="font-family:arial;color:#999999;">Any state of the cube corresponds to a permutation of its facelets — a rule that assigns to each facelet in the home state a new location on the cube in the scrambled state. Not every permutation of facelets can be achieved by a sequence of moves — for example no move can shift the centre facelet of a face — so when trying to solve Rubik's cube you restrict your attention to a collection of legal permutations.<br /><br />These form a self-contained system. If you follow one legal permutation by another, the end result is also a legal permutation. If you've done one legal permutation, you can always find another one — namely the reverse of what you've just done — that will get you back to the position you started with. Doing absolutely nothing to the cube is also a legal move and corresponds to the permutation that leaves every facelet where it is, known to mathematicians as the identity permutation.<br /><br />The problem of solving Rubik's cube can be visualised using what is called the group's Cayley graph — a network whose nodes are the legal states of the cube (corresponding to legal permutations) and which has two nodes linked up if you can get from one to the other by a legal move, which, incidentally, is itself a permutation. The home state of the cube corresponds to one of the nodes (and the identity permutation) and solving the cube corresponds to finding a path from one of the nodes to the home state along a sequence of linked-up nodes.<br /><br />A brute-force approach to showing that you can always solve the cube in N moves would be to show that no such path involves more than N steps. This sounds good in theory, but there is a huge problem as the Cayley graph of the group of legal permutations has 43,252,003,274,489,856,000 nodes, a number that challenges even the fastest of supercomputers.<br /><br />The (3 x 3 x 3) Rubik's Cube has eight corners and twelve edges. There are 8! (40,320) ways to arrange the corner cubes. Seven can be oriented independently, and the orientation of the eighth depends on the preceding seven, giving 37 (2,187) possibilities. </span></div><div align="justify"><div style="text-align: left;"><br /></div><span style="font-family:arial;color:#999999;">There are 12!/2 (239,500,800) ways to arrange the edges, since an odd permutation of the corners implies an odd permutation of the edges as well. Eleven edges can be flipped independently, with the flip of the twelfth depending on the preceding ones, giving 211 (2,048) possibilities.</span></div><div align="justify"><div style="text-align: left;"><br /></div><span style="font-family:arial;"><span style="color:#999999;">There are exactly 43,252,003,274,489,856,000 permutations. The full number is 519,024,039,293,878,272,000 or 519 quintillion possible arrangements of the pieces that make up the Cube, but only one in twelve of these are actually solvable. This is because there is no sequence of moves that will swap a single pair of pieces or rotate a single corner or edge cube.<br /></span><br /><span style="color:#999999;"><span style="color:#cc0000;">(1)</span> </span><span style="font-size:85%;"><span style="color:#999999;">This problem is sometimes also called</span> </span></span><a href="http://mathworld.wolfram.com/GuthriesProblem.html"><span style="font-family:arial;font-size:85%;color:#ffcc33;">Guthrie's problem</span></a><span style="font-family:arial;font-size:85%;"> <span style="color:#999999;">after F. Guthrie, who first conjectured the theorem in 1852. The </span></span><span style="font-family:arial;font-size:85%;"><span style="color:#999999;">was then communicated to de Morgan and thence into the general community. In 1878, Cayley wrote the first paper on the conjecture.<br /></span><br /><span style="color:#999999;"><span style="color:#cc0000;">(2)</span> One of these areas is the topology of networks, first developed by</span> </span><a href="http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Euler.html"><span style="font-family:arial;font-size:85%;color:#ffcc66;">Leonhard Euler</span></a><span style="font-family:arial;font-size:85%;"> <span style="color:#999999;">in 1735. His work in this field was inspired by the following problem: The Seven Bridges of Konigsberg.</span></span></div><br /><div align="justify"><span style="font-size:85%;"></span></div>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-3982570369530839762010-08-06T00:18:00.000-07:002010-08-06T01:00:07.160-07:00Virtual Reality Technology and Alzheimer's Disease<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Rv3Z5p6OorPKloH1lrULgCBZorwZWGhcFi2I7yo-H9QdxI_63Tl5ORJgG_17t_lDCNxlbP1jZGpDAMiXDEHawpbo37sMAQaNgekSwEkkr4cK_yoqttYLqgHfFQbpP9SAOobwoAMT1nI/s1600/jfa0335l%5B1%5D.jpg"><img style="MARGIN: 0px 10px 10px 0px; WIDTH: 200px; FLOAT: left; HEIGHT: 194px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5502201621338832722" border="0" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Rv3Z5p6OorPKloH1lrULgCBZorwZWGhcFi2I7yo-H9QdxI_63Tl5ORJgG_17t_lDCNxlbP1jZGpDAMiXDEHawpbo37sMAQaNgekSwEkkr4cK_yoqttYLqgHfFQbpP9SAOobwoAMT1nI/s200/jfa0335l%5B1%5D.jpg" /></a><br /><br /><p align="justify"><br /><span style="color:#c0c0c0;">The use of virtual reality technology in the assessment, study of, and possible assistance in the rehabilitation of memory deficits associated with patients with Alzheimer disease. </span></p><span style="color:#c0c0c0;"></span><br /><p align="justify"><span style="color:#c0c0c0;"><strong><span style="font-size:130%;color:#cc0000;">Background<br /></span></strong><br />Alzheimer's disease is the common cause of dementia, and is particularly common in older people. Because it is the most common cause of dementia, Alzheimer's disease is commonly equated with the general term dementia. However, there are many other causes of dementia. Alzheimer's disease is therefore a specific form of dementia having very specific microscopic brain abnormalities.<br /><br />Alzheimer disease is not merely a problem of memory. Additional mental and behavioral problems often affect people who have the disease, and may influence quality of life, caregivers, and the need for institutionalization.<br /><br />Depression for example affects 20–30% of people who have Alzheimer’s, and about 20% have anxiety. Psychosis (often delusions of persecution) and agitation/aggression also often accompany this disease. Common symptoms and comorbidities include:<br /><br />• Mental deterioration of organic or functional origin<br /><br />• Loss of cognitive ability in a previously-unimpaired person, beyond what might be expected from normal aging. Areas particularly affected include memory, attention, judgement, language and problem solving.<br /><br />• Loss (usually gradual) of mental abilities such as thinking, remembering, and reasoning. It is not a disease, but a group of symptoms that may accompany some diseases or conditions affecting the brain.<br /><br />• Deteriorated mental state due to a disease process and the result from many disorders of the nervous system.<br /><br />• Cognitive deficit or memory impairment due to progressive brain injury.<br /><br />Distinguishing Alzheimer's disease from other causes of dementia is not always as easy and straightforward as defining these terms. In practice, people and their disorders of behaviour, or behaviours of concern are far more complex than the simple definitions sometimes provided.<br /><br />Establishing patient history, abilities, the natural course of disorder development such as that involving short-term memory, speech and language, personality, decision-making and judgment, and others is often needed in the diagnosis of the disease. Routine diagnostic steps therefore include a careful history, mental status screening, laboratory and imaging studies, and neuropsychologic testing.<br /><br /><strong><span style="font-size:130%;color:#cc0000;">Differential diagnosis of Alzheimer's disease</span></strong><br /><br />It is sometimes difficult to differentiate dementia caused by Alzheimer's from delirium and in addition several features distinguish dementia from depression, but the two can coexist and the distinction may be uncertain.<br /><br />Whilst prominent motor signs such as Gait disturbance is a characteristic feature of patients with vascular dementia - In contrast, the NINCDS-ADRDA criteria for Alzheimer's disease state that: `gait disturbance at the onset or very early in the course of the illness' makes the diagnosis of probable Alzheimer's disease uncertain or unlikely. However, clinical studies suggest that gait disturbance is not restricted to the later stages of Alzheimer's disease. Also, studies have identified abnormalities of gait and balance in patients with early Alzheimer's disease<span style="font-size:85%;">(1)</span>.<br /><br />It had been thought that Dementias without prominent motor signs included Alzheimer's disease, frontotemporal dementia, and Creutzfeld-Jakob, and others and the clinical pattern of gait disturbance in patients with early Alzheimer's disease has attracted less attention to date.<br /><br /><strong><span style="font-size:130%;color:#cc0000;">Diagnosis </span></strong><br /><br />Differential diagnosis between the types of dementia and treatments available for Alzheimer's - while limited in their effectiveness usually have best patient outcomes when begun early in the course of the disease. Diagnosis and/or diagnostic tools include:<br /><br />Taking medical history. </span><br /></p><p align="justify"><span style="color:#c0c0c0;">Physical examination including evaluations of hearing and sight, as well as blood pressure and pulse readings, etc. </span></p><span style="color:#c0c0c0;"></span><p align="justify"><br /><span style="color:#c0c0c0;">Standard laboratory tests including blood and urine tests designed to help eliminate other possible conditions. </span><br /></p><p align="justify"><span style="color:#c0c0c0;">Neuropsychological testing including assessing memory, problem-solving, attention, vision-motor coordination and abstract thinking, such as performing simple calculations.</span><br /></p><p align="justify"><br /><span style="color:#c0c0c0;">Brain-imaging or structural brain scan such as CT or MRI to help rule out brain tumors or blood as the reason for symptoms and more recently</span></p><span style="color:#c0c0c0;"></span><p align="justify"><br /><span style="color:#c0c0c0;"><span style="color:#cc0000;"><strong><span style="font-size:130%;">The use of virtual reality</span></strong><br /></span><br />The use of virtual reality technology in the assessment, study of, and possible assistance in the rehabilitation of memory deficits associated with patients with Alzheimer disease.<br /><br />Using virtual reality to simulate real-word environments and test patient’s ability to navigate these environments. Work has been carried out to compare previously described real-world navigation tests with a virtual reality version simulating the same navigational environment <span style="font-size:85%;">(2).</span> Authors of this research work conclude that virtual navigation testing reveals deficits in aging and Alzheimer disease that are associated with potentially grave risks to patients and the community.<br /><br />In another study in the United Kingdom <span style="font-size:85%;">(3),</span> researchers’ aimed to examine the feasibility of virtual reality technology for use by people with dementia (PWD). Data was obtained directly from six PWD regarding their experiences with a virtual environment of a large outdoor park. A user-centered method was developed to assess:<br /><br />(a) presence;<br />(b) user inputs;<br />(c) display quality;<br />(d) simulation fidelity; and<br />(e) overall system usability.<br /><br />The extent to which PWD could perform four functional activities in the virtual enviroment was also investigated (e.g., mailing a letter). In addition, physical and psychological well-being of PWD while interacting with the virtual environment was assessed objectively by recording heart rate during the virtual reality sessions and subjectively with discrete questionnaire items and real-time prompts.<br /></span><br /><span style="font-size:85%;color:#cc9933;">(1) Gait disturbance in Alzheimer's disease: a clinical studyS.T. O'Keeffe, H. Kazeem, R.M. Philpott, J.R. Playfer, M. Gosney, M. Lye July, 1996<br /><br />(2) NEUROLOGY 2008;71:888-895<br />Detecting navigational deficits in cognitive aging and Alzheimer disease using virtual reality<br />Laura A. Cushman, PhD, Karen Stein and Charles J. Duffy, MD, PhD<br />From the Departments of Neurology, Brain and Cognitive Sciences, Neurobiology and Anatomy, Ophthalmology, and Psychiatry (L.A.C.) and Center for Visual Science, </span><span style="font-size:85%;color:#cc9933;">The University of Rochester Medical Center, Rochester, NY.<br /><br />(3) Flynn D, van Schaik P, Blackman T, Femcott C, Hobbs B, Calderon C.<br />School of Social Sciences and Law, The University of Teesside, Middlesbrough, United Kingdom</span><span style="color:#ffcc66;"><br /></span><span style="color:#ffcc66;"><br /></p></span><span style="color:#ffcc66;"></span>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com2tag:blogger.com,1999:blog-4516875794785365515.post-22469847524506210722010-08-05T01:34:00.000-07:002010-08-05T02:06:09.313-07:00Quantum-connected computers overturn the uncertainty principle<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi79phJiZq62W0BCgEmK8jXJP96PMpEBqiLSUt0iXTeOXzuk_YP9KEMqlmiv2xdRhsRgrdy4H91wg9XqlFnst4uewlof6BVDO8VxhE2x6FF5koFQCn_gy8I6sALhXtgpt_u7udLcdlLEU4/s1600/Four-dimensional-symmetry%5B1%5D.jpg"><img style="MARGIN: 0px 10px 10px 0px; WIDTH: 173px; FLOAT: left; HEIGHT: 200px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5501846705920611538" border="0" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi79phJiZq62W0BCgEmK8jXJP96PMpEBqiLSUt0iXTeOXzuk_YP9KEMqlmiv2xdRhsRgrdy4H91wg9XqlFnst4uewlof6BVDO8VxhE2x6FF5koFQCn_gy8I6sALhXtgpt_u7udLcdlLEU4/s200/Four-dimensional-symmetry%5B1%5D.jpg" /></a><br /><div align="justify"><strong><span style="font-size:130%;color:#cc0000;">Introduction</span></strong></div><br /><div align="justify"><br /><span style="font-family:arial;"><span style="color:#cccccc;">Back in the mid eighties when completing a pure mathematics degree and using the then state of the art mini-computers, the PDP11 family of processors (we couldn’t afford the services of the more, much more, brawny nitrogen-cooled Crays to solve sparse Hadamard matrices - I contributed an article in a UK computer journal discussing the future of computers, artificial intelligence, human interfaces and visualization – I guess you can call it a naive attempt to predict how systems will/MAY evolve. Of course this was through my own lens of experience. Watching processor speeds rapidly increasing and memory, disk and everything else growing almost exponentially.</span> </span></div><span style="font-family:arial;"><div align="justify"><br /><span style="color:#cccccc;">Of course the implicit question was - If all that has happened in the first 50 years of computer history, what will happen in the next 50 or so years? </span></div><div align="justify"><br /><span style="color:#cccccc;">Moore's Law is an empirical formula describing the evolution of processors which is often cited to predict future progress in the field, as it's been proved quite accurate in the past: it states that the transistor count in an up-to-date processor will double each time every some period of time between 18 and 24 months, which roughly means that computational speed grows exponentially, doubling every 2 years. As processors become faster the science of computability, amongst other things describes a class called 'NP-hard problems' which are also sometimes referred to 'unacceptable', 'unsustainable' or 'binomially exploding' whose complexity and therefore computation grow exponentially with time.<br /></span><br /></div><div align="justify"><span style="color:#cccccc;">An example of NP-hard algorithm is the one of finding the exit of a labyrinth: it doesn't require much effort if you only find one crossing, but it gets much more demanding in terms of resources when the crossings become so large that it becomes either impossible to compute because of limited resources, or computable, but requiring an unacceptable amount of time. </span></div><div align="justify"><br /><span style="color:#cccccc;">Many, if not all, of the Artificial Intelligence related algorithms are extremely demanding in terms of computational resources because they are either NP-hard or involve combinatorial calculus of growing complexity. </span></div><div align="justify"><br /></div><div align="justify"><span style="color:#cccccc;">Not all developments in processing architecture stem from a single genesis. For example, recently, IBM researchers have made huge strides in mapping the architecture of the Macaque monkey brain. They have traced long-distance connections in the brain - the "interstate highways" which transmit information between distant areas of the brain. T</span><span style="color:#cccccc;">heir maps may help researchers grasp how and where the brain sends information better than ever before, and possibly develop processors that can keep up with our brain's immense computational power and navigate its complex architecture.</span></div><div align="justify"><br /><span style="color:#cccccc;">Artificial intelligence and cognitive modeling try to simulate some properties of neural networks. While similar in their techniques, the former has the aim of solving particular tasks, while the latter aims to build mathematical models of biological neural systems.</span> </div><div align="justify"><br /></div><div align="justify"><strong><span style="font-size:130%;color:#cc0000;">Another trajectory – that of Quantum Computers</span></strong> </div><div align="justify"><br /><span style="color:#cccccc;">The uncertainty principle is a key underpinning of quantum mechanics. A particle's position or its velocity can be measured but not both. Now, according to five physicists from Germany, Switzerland, and Canada, in a letter abstract published in Nature Physics(1) quantum computer memory could let us violate this principle</span></div><div align="justify"><span style="color:#cccccc;"><br />Paul Dirac who shared the 1933 Nobel Prize in physics with Erwin Schrödinger, "for the discovery of new productive forms of atomic theory” provided a concrete illustration of what the uncertainty principle means. He explained that one of the very, few ways to measure a particle's position is to hit it with a photon and then chart where the photon lands on a detector. That gives you the particle's position, yes, but it's also fundamentally changed its velocity, and the only way to learn that would consequently alter its position. </span></div><div align="justify"><br /><span style="color:#cccccc;">That's more or less been the status quo of quantum mechanics since Werner Heisenberg first published his theories in 1927, and no attempts to overturn it - including multiple by Albert Einstein himself - proved successful. But now the five physicists hope to succeed where Einstein failed. If they're successful, it will be because of something that wasn't even theorized until many years after Einstein's death: Quantum Computers. </span></div><div align="justify"><br /></div><div align="justify"><span style="color:#cccccc;">Key to quantum computers are qubits, the individual units of quantum memory. A particle would need to be entangled with a quantum memory large enough to hold all its possible states and degrees of freedom. Then, the particle would be separated and one of its features measured. If, say, its position was measured, then the researcher would tell the keeper of the quantum memory to measure its velocity. </span></div><div align="justify"><br /><span style="color:#cccccc;">Because the uncertainty principle wouldn't extend from the particle to the memory, it wouldn't prevent the keeper from measuring this second figure, allowing for exact, or possibly, for obscure mathematical reasons, almost exact measurements of both figures.</span></div><div align="justify"><br /><span style="color:#cccccc;">It would take lots of qubits - far more than the dozen or so we've so far been able to generate at any one time - to entangle all that quantum information from a particle, and the task of entangling so many qubits together would be extremely fragile and tricky. Not impossibly tricky, but still way beyond what we can do now.<br /><br /><br /></span><span style="font-size:85%;"><span style="color:#ffcc66;"><span style="font-size:78%;">(1)</span> Nature Physics<br />Published online: 25 July 2010 doi:10.1038/nphys1734<br />The uncertainty principle in the presence of quantum memory<br />Mario Berta, Matthias Christandl, Roger Colbeck, Joseph M. Renes & Renato Renner</span></span></div><br /><div align="justify"></span></div>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-52240363048477798632010-05-23T02:08:00.000-07:002010-08-25T01:18:23.742-07:00A message into the future and even the past<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzkQwXj2tdFe0sR88U7Q0qq_H5drNBh1r5EJTnKzCxSPoz3z-_dHMEToD_9Mo6Dv_o1BH5UHb_2Q9ckci-Ad_zZTiH2xAmNa_KXC44hWoeKiWHWtUEjCy2nlBMEB_iNV18wtSg1a1QmN0/s1600/300px-Bells-thm.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 76px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzkQwXj2tdFe0sR88U7Q0qq_H5drNBh1r5EJTnKzCxSPoz3z-_dHMEToD_9Mo6Dv_o1BH5UHb_2Q9ckci-Ad_zZTiH2xAmNa_KXC44hWoeKiWHWtUEjCy2nlBMEB_iNV18wtSg1a1QmN0/s200/300px-Bells-thm.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5474395423964583090" /></a><br /><!--StartFragment--> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: 20.0pt;mso-pagination:none;mso-layout-grid-align:none;text-autospace:none"><span class="Apple-style-span" style="font-family:Helvetica, serif;font-size:180%;"><span class="Apple-style-span" style="font-size:17px;"> <!--StartFragment--> </span></span></p><span class="Apple-style-span" style="font-family:Helvetica, serif;font-size:180%;"><p class="MsoNormal" style="text-align: right;margin-bottom: 0.0001pt; line-height: 20pt; "><span class="Apple-style-span" style="font-family:Arial, serif;"><span class="Apple-style-span" style="font-size:large;"><span class="Apple-style-span" style="color:#990000;">Jack Dikian</span></span></span></p><p class="MsoNormal" style="text-align: right;margin-bottom: 0.0001pt; line-height: 20pt; "><span class="Apple-style-span" style="font-family:Arial, serif;"><span class="Apple-style-span" style="color:#990000;"><span class="Apple-style-span" style="font-size:medium;">ABSTRACT</span></span></span></p><p class="MsoNormal" style="text-align: right;margin-bottom: 0.0001pt; line-height: 20pt; "><span class="Apple-style-span" style="font-family:Arial, serif;color:#FFCC66;"><b><span class="Apple-style-span" style="color:#FF0000;"> <!--StartFragment--> </span></b></span></p><span class="Apple-style-span" style="font-family:Arial, serif;color:#FFCC66;"><b><span class="Apple-style-span" style="color:#FF0000;"><p class="MsoNormal" align="right" style="margin-bottom:0cm;margin-bottom:.0001pt; text-align:right;mso-pagination:none;mso-layout-grid-align:none;text-autospace: none"><b><span lang="EN-US"><span class="Apple-style-span" style="font-size:large;"><span class="Apple-style-span" style="color:#CC9933;"><span class="Apple-style-span" style="font-family:'times new roman';">Sending messages into the future and whatabout sending messages into the past</span></span></span></span></b><span lang="EN-US" style="font-size:24.0pt;"><span class="Apple-style-span" style="font-family:'times new roman';"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: justify;margin-bottom: 0.0001pt; "><span lang="EN-US" style="color:#C1C1C1;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';">Bell’s theorem shows that there are limits that apply to local hidden-variable models of quantum systems, and that</span></span><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC9933;"><span class="Apple-style-span" style="font-family:'times new roman';">quantum mechanics</span></span></span></span><span lang="EN-US" style="color:#C1C1C1;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';">predicts that these limits will be exceeded by measurements performed on entangled pairs of particles. This article discusses </span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC9933;"><span class="Apple-style-span" style="font-family:'times new roman';">Bell’s theorem</span></span></span></span><span lang="EN-US" style="color:#C1C1C1;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';">in the context of experiments that show that the predictions of quantum mechanics are consistent with the results of experiments, and inconsistent with local hidden variable models of quantum mechanics.</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><o:p></o:p></span></span></span></span></p> <p class="MsoNormal" style="text-align: justify;margin-bottom: 0.0001pt; "><span lang="EN-US"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';">A series of experiments has demonstrated the quantum predictions that form the basis of Bell's Theorem and some would therefore claim that not only the predictions of quantum theory but also experimental results now prove, using Bell's theorem, that the universe must violate either locality or counterfactual definiteness.</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><o:p></o:p></span></span></span></span></p> <p class="MsoNormal" style="text-align: justify;margin-bottom: 0.0001pt; "><span lang="EN-US" style="color:#C1C1C1;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';">So, basically, if</span></span><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC9933;"><span class="Apple-style-span" style="font-family:'times new roman';">entanglement </span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';">through a spin placed on a particle results in another spinning in the opposite direction in exactly the same way and at exactly the same time no matter the distance between them – this may make for instantaneous communication, across in theory, any distance.</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><o:p></o:p></span></span></span></span></p> <p class="MsoNormal" style="text-align: justify;margin-bottom: 0.0001pt; "><span lang="EN-US"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';">If we now consider learning’s from </span></span></span></span><span lang="EN-US" style="color:#C1C1C1;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';">the</span></span><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC9933;"><span class="Apple-style-span" style="font-family:'times new roman';">twin paradox</span></span></span></span><span lang="EN-US" style="color:#C1C1C1;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';">(see special relativity) in which a twin makes a journey into space in a high-speed rocket and returns home to find he has aged less than his identical twin who stayed on Earth.</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"> I.e. the twin, and everything else have aged at a much faster rate than him. He will essentially have traveled forward in time.</span></span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';"><o:p></o:p></span></span></span></span></p> <p class="MsoNormal" style="text-align: justify;margin-bottom: 0.0001pt; "><span lang="EN-US" style="color:#C1C1C1;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';">What if a particle is accelerated at a sufficient enough rate so that it travels forward in time, and at the same time second particle in the</span></span><span class="Apple-style-span" style="font-family:'times new roman';"> </span></span></span><span lang="EN-US"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC9933;"><span class="Apple-style-span" style="font-family:'times new roman';">entanglement-pair</span></span></span></span><span lang="EN-US" style="color:#C1C1C1;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:'times new roman';"> </span><span class="Apple-style-span" style="color:#999999;"><span class="Apple-style-span" style="font-family:'times new roman';">is spun. Are we then essentially sending a message into the future.</span></span></span></span><span style="Times New Roman";mso-ansi-language: EN-AUfont-family:";"><o:p></o:p></span></p> <!--EndFragment--> </span></b></span><p></p> <!--EndFragment--> </span><p></p> <!--EndFragment-->Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-4016571701406198492010-04-07T21:35:00.000-07:002010-04-08T04:44:10.944-07:00Unsolvable Problem<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKZNKwS59RHesDPe2R5ErazEt3oKZMfKRbzGbe2Bq-EIOy1Ngi2SvHTt9ajlhxVietQYAiBtgLLvtYKW5rizlpXzsThoY-T7gIrFKzT-N4hbyTVsVS6QzVA9dSSIhvLvTqIgmr6ZCdrZ0/s1600/turing.jpg"></a><br /><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwfgg5bko_5H6biYlmKnucto7alGt2DU0v3j842xCqKaQlKykEoXBbyio0ulchJe1-8rGFniGRjFJOBZRxbHZIq2Vjd9iwFJ83h3c2wwbnk6QwDjKQrtJj3Qv207xTStbSvON3zIDkI4U/s1600/2237399546_d3a12604fb[1].jpg"><img id="BLOGGER_PHOTO_ID_5457622300394496914" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 150px; CURSOR: hand; HEIGHT: 200px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwfgg5bko_5H6biYlmKnucto7alGt2DU0v3j842xCqKaQlKykEoXBbyio0ulchJe1-8rGFniGRjFJOBZRxbHZIq2Vjd9iwFJ83h3c2wwbnk6QwDjKQrtJj3Qv207xTStbSvON3zIDkI4U/s200/2237399546_d3a12604fb%5B1%5D.jpg" border="0" /></a><br /><br /><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7QvXGXn5sfEqxn2tfUQINGDkZO8PcuzdMmqDqNUTXMgwuyfMaK1rhVteD3h111QLdzG5_nEs-ULSTjRfpgA5z6_RdDTgQvIf_EhnPhMfe6N-iza673QNO1yJXT_cmwD5mcu09TkaDgFc/s1600/turing22.jpg"></a><br /><br /><br /><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgczTIdt01soToChwE86dtc5zpY_kRFptmLOGsqLDd31hm0mo-ERwFnpHPtzHeYJeEj8nY679w6qZblXLow-eJlTEnav9b3XA_Ws3IiBlUqQcBlVNvsy5jH1Vd2QpGv792f3OH8qnGIkp4/s1600/Halt.jpg"></a><br /><br /><br /><br /><div align="justify"></div><br /><br /><br /><br /><div align="right"><span style="font-family:arial;font-size:180%;color:#ff0000;">Jack Dikian</span></div><div align="right"> </div><div align="right"></div><div align="right"><span style="font-family:Arial;font-size:78%;color:#ffcc66;">October 1999</span></div><br /><div align="justify"><br /><span style="font-family:arial;color:#cccccc;">The Halting Problem is one of the simplest problems known to be unsolvable. Given a program and an input to the program (input-program pair), determine if the program will eventually stop when it is given that input.</span></div><div align="justify"><br /><a name="ref2intxt"></a><span style="font-family:arial;color:#cccccc;">Turing <i>pondered</i> if there was a way of telling in general once a computer has embarked on a calculation whether that calculation will terminate in an answer. This problem is known as the "Halting Problem for Turing Machines" and was first proved in the 1937 paper in which he described his machines. </span></div><div align="justify"><br /><span style="font-family:arial;color:#cccccc;">My interest in this was caught when writing a Turing Machine simulator and was fascinated by the seemingly simple challenge – and Turing’s elegant solution.<br /><br /><strong><span style="color:#ffcc66;">Introduction</span></strong><br /><br />Briefly, a Turing machine can be thought of as a black box, which performs a calculation of some kind on an input number. If the calculation reaches a conclusion, or halts then an output number is returned. Otherwise, the machine theoretically just carries on forever. The problem is equivalent to the problem of deciding, given a program and an input, whether the program will eventually halt when run with that input, or will run forever.</span></div><span style="font-family:arial;"><div align="justify"><br /><span style="color:#cccccc;">There are an infinite number of Turing machines, as there are an infinite number of calculations that can be done with a finite list of rules. Alan Turing proved in 1936 that a general algorithm to solve the halting problem for all possible program-input pairs cannot exist. We say that the halting problem is un</span><a title="Undecidable problem" href="http://en.wikipedia.org/wiki/Undecidable_problem"><span style="font-family:arial;color:#cccccc;">decidable</span></a><span style="font-family:arial;color:#cccccc;"> over Turing machines. </span><br /></div><div align="justify"><span style="font-family:Arial;color:#cccccc;"><span style="color:#000000;">Break here</span></span><br /></div><div align="justify"><span style="color:#cccccc;"></span></div><br /><div align="justify"><span style="color:#cccccc;">Download author's Turing Machine simulator and article "</span><span><strong><span class="Apple-style-span" style="color:#FFCC33;">Halting Problem Made Simple, October 1999</span></strong></span><span style="color:#cccccc;">"</span></div><br /><div align="justify"></div><br /><div align="justify"><br /></div><br /><div align="justify"></div></span></div></div></div>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-27901639793371422182010-04-06T21:05:00.000-07:002010-04-07T01:03:48.500-07:00Apparatus For Removing Hidden Lines from Bezier Surfaces<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB_2fUCRfOR2zHplFrv9h1Wj_totVzHUbCWpVStAJlHCREYfI_G4dt9zpQh9wmJLa0Ed4n0hSx4iz3FTPWUrMY2ZDrsRXOAYZlsamTkuTopVL0v8ZAdaHZRmhWMJ-Myall1VcCg5Vfb3Q/s1600/images.jpeg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 107px; height: 140px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB_2fUCRfOR2zHplFrv9h1Wj_totVzHUbCWpVStAJlHCREYfI_G4dt9zpQh9wmJLa0Ed4n0hSx4iz3FTPWUrMY2ZDrsRXOAYZlsamTkuTopVL0v8ZAdaHZRmhWMJ-Myall1VcCg5Vfb3Q/s200/images.jpeg" border="0" alt="" id="BLOGGER_PHOTO_ID_5457303221590563090" /></a><br /><br /><div align="justify"></div><br /><div align="right"><span style="font-family:arial;font-size:180%;color:#ff0000;"><strong>Jack Dikian</strong></span></div><br /><div align="right"><span style="font-family:arial;font-size:85%;color:#ffcc66;">November 2000</span></div><br /><div align="justify"><span style="font-family:arial;">This paper describes the work carried out by the author in implementing an apparatus for removing hidden lines from Bezier surfaces on the Tektronix storage tube technology of the early 80’s.</span></div><div align="justify"><br /><strong><span style="font-family:arial;color:#ffcc66;">Bézier surface</span></strong></div><div align="justify"><br /><span style="font-family:arial;">A Bézier surface is formed as the cartesian product of the blending functions of two orthogonal Bézier curves. Bézier surfaces, first described in the early 60’s by the French engineer Pierre Bézier and used in automobile body design. </span></div><div align="justify"><br /><strong><span style="font-family:arial;color:#ffcc66;">Hidden lines</span></strong></div><div align="justify"><br /><span style="font-family:arial;">When rendering a three dimensional surface on a two dimensional plane such as a computer screen, lines which should otherwise not seen by the viewer must be removed. The shape of the surface, if opaque, should not be cluttered by overlapping lines. Importantly, our real world experience does not allow for us to “see” through what is a solid surface or object.</span></div><div align="justify"><br /><span style="font-family:arial;">In order to remove these lines, hidden line algorithms are applied in the surface rendering software to create a wire-frame which contains only visible lines and hides the lines covered by the surface.</span></div><div align="justify"><br /><span style="font-family:arial;">There are a number of algorithms used to remove hidden lines. Arthur Appel’s work at IBM in the late 1960’s for example works by propagating the visibility from a segment with a known visibility to a segment whose visibility is yet to be determined. By a comparison of the two following images, the line removal algorithm can be seen at work as the wireframe representation of the surface shaded object removes the lines which are not in view.</span></div><div align="justify"><br /><span style="font-family:arial;">Whilst much of the initial work in hidden line removal was done by Arthur Appel, the field is still growing as there are exceptions when his algorithm is not effective. There is a variety of other algorithms which are implemented in computer-assisted design such as the object-precision algorithms of Weiss and Galimberti/Montenari and the image-precision algorithms Encarnacao (priority-edge intersection test and scan grid – point/surface test), Warnock, and Watkins. </span></div><div align="justify"><br /><strong><span style="font-family:arial;color:#ffcc66;">The Approach</span></strong></div>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-9373441873503825492010-03-25T21:13:00.000-07:002010-03-30T02:50:46.044-07:00Peephole Optimization<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYxVUU7fYJeOxv1293RaCGVDISinOniko7xe5aZNMmSt3yX5Fm3m9eduAk65VbyR55ugTUbR54g4pwxeF3icbuqJT5IdrNvY3LO_kPTxHjl-najNSdH6EO5TlmXWVgDFuG_C_WqkRieVc/s1600/FilePdp-11-40.jpg.jpeg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 150px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYxVUU7fYJeOxv1293RaCGVDISinOniko7xe5aZNMmSt3yX5Fm3m9eduAk65VbyR55ugTUbR54g4pwxeF3icbuqJT5IdrNvY3LO_kPTxHjl-najNSdH6EO5TlmXWVgDFuG_C_WqkRieVc/s200/FilePdp-11-40.jpg.jpeg" border="0" alt="" id="BLOGGER_PHOTO_ID_5452834658141656834" /></a><br /><h1 style="text-align: right;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CC0000;">Jack Dikian</span></span></h1><div style="text-align: right;"><b><span class="Apple-style-span" style="font-size:small;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">January 1992</span></span></span></b></div> <h1 style="text-align: right;"><span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">Introduction</span></span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></h1> <p class="MsoNormal" style="text-align:justify"><span class="apple-style-span"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">In the late 70’s and early 80’s when the 8086 (The IBM PC) was running at</span></span></span></span><span class="apple-converted-space"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">4.77Mhz</span></span><span class="apple-style-span"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> and incapable of addressing more than 16MB of hardware memory (in real mode) – and even when </span></span></span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">minicomputers of the day such as the 16bit PDP11/xx range where running at around 15Mhz with a largely orthogonal instruction-set architecture and little</span><span class="Apple-style-span" style="color:#CCCCCC;"> I/O instructions – those involved in compiler design and implementation, such as myself working mainly with early versions of Unix sought to reduce both the compilation time and execution time of programs in order to combat the limitations of hardware of the time.</span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">Successful compiler optimizers were required to produce a faster executable code, moderate compilation time and effective use of resources such as memory. Understanding compiler optimization was essential, particularly when changes to a programming construct or to an instruction set was required – the changes to the compilation process must be taken into consideration. </span></span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></p> <p style="text-align:justify"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">Instruction execution on any given processor is performed at the machine level, often using a machine language or machine code. However, most code is written in a higher-level language such as LISP, C or C++. Therefore, the important role of optimizing code is normally done by</span></span><span class="apple-converted-space"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span><i><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">compilers</span></span></i><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">, translating high-level languages into machine code. Given that system architectures vary dramatically, how code is executed against anyone processor class also varies greatly. For example, the Pentium processor has two separate integer execution units, called the</span></span><span class="apple-converted-space"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span><i><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">U-pipe</span></span></i><span class="apple-converted-space"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">and the</span></span><span class="apple-converted-space"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span><i><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">V-pipe</span></span></i><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">. The U-pipe can execute any instruction while the V-pipe can only execute a subset. Programs that take this into account, for instance, can structure themselves in ways to achieve improved performance over those that do not optimise themselves in this manner.</span></span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></p> <p style="text-align:justify"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">Particular interest to the author was the "back end" compiler optimization techniques such as the </span></span><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">peephole</span></span></b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> methods, and the exploration of the relationship between compiler optimization and the given architecture and design. </span></span><span class="apple-style-span"><span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></span></span></p> <p style="text-align: justify;"><b><span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">Compiler Optimization</span></span></span></b><span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-right:-7.7pt;text-align:justify;mso-layout-grid-align: none;text-autospace:none"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">Most compilers perform lexical, syntactic, and semantic analysis, code optimization, and code generation, in this order. Code optimization includes common sub-expression elimination, constant folding, code motion, and strength reduction.</span></span></span></p> <p class="MsoNormal" style="margin-right:-7.7pt;text-align:justify;mso-layout-grid-align: none;text-autospace:none"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">Code generation includes register allocation, code selection, and perhaps some </span></span><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">peephole</span></span></b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> optimization. Most optimizers treat a high-level intermediate code to avoid machine dependencies and most peephole optimizers are machine specific and ad hoc, so they are normally confined to correcting a small sample of patterns that cannot be more easily corrected before code generation.</span></span></span></p> <h1 style="text-align: justify;"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">Peephole optimization</span></span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></h1> <p class="MsoNormal" style="text-align:justify"><span class="apple-style-span"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">Generally, peephole optimization</span></span></span></span><span class="apple-converted-space"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span><span class="apple-style-span"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">is used to mean the pattern matching and conditional replacement performed on small set of intermediate instructions.</span></span></span></span><span class="apple-converted-space"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span><span class="apple-style-span"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">The circular dependence between the code generation phases implies that local optimals are rarely global optimals. Some strategies that may be adopted are:</span></span></span></span></p> <ul style="margin-top:0pt" type="disc"> <li class="MsoNormal" style="text-align:justify;mso-list:l5 level1 lfo2; tab-stops:list 36.0ptcolor:black;"><span class="apple-style-span"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">Accept the local optimal</span></span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></span></li> <li class="MsoNormal" style="text-align:justify;mso-list:l5 level1 lfo2; tab-stops:list 36.0ptcolor:black;"><span class="apple-style-span"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">Develop intermediate goals whose achievement suggest global optimality </span></span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></span></li> <li class="MsoNormal" style="text-align:justify;mso-list:l5 level1 lfo2; tab-stops:list 36.0ptcolor:black;"><span class="apple-style-span"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">Retain the choices so that the decisions can be made later </span></span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></span></li> <li class="MsoNormal" style="text-align:justify;mso-list:l5 level1 lfo2; tab-stops:list 36.0ptcolor:black;"><span class="apple-style-span"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">Optimize the object by replacing awkward or overly constrained segments of code with improved ones.</span></span></span></span></li></ul> <p class="MsoNormal" style="text-align:justify"><span class="apple-style-span"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">As mentioned, peephole optimization</span></span></span></span><span class="apple-converted-space"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span><span class="apple-style-span"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">is</span></span></span></span><span class="apple-converted-space"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span><span class="apple-style-span"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">performed over a small set of instructions in a segment of generated code. The set is called a "peephole" or a "window". The peephole optimizer works by recognising sets of instructions that perform a NULL outcome (they do nothing), or that can be replaced by more efficient set of instructions. The most </span></span></span></span><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">common techniques used in peephole optimization include:</span></span><span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></span></p> <p class="MsoNormal" style="margin-top:6.0pt;margin-right:-16.7pt;mso-margin-bottom-alt: auto;margin-left:18.0pt;text-indent:-18.0pt;mso-list:l3 level1 lfo1;tab-stops: list 36.0pt"></p><ul><li><span class="Apple-style-span" style=" color: rgb(204, 204, 204); font-family:arial, serif;"><span class="Apple-style-span" style="font-size:medium;">Evaluating constant sub-expressions in advance.</span></span></li><li><span class="Apple-style-span" style=" color: rgb(204, 204, 204); font-family:arial, serif;"><span class="Apple-style-span" style="font-size:medium;">Replacing slow operations with faster equivalents.</span></span></li><li><span class="Apple-style-span" style=" color: rgb(204, 204, 204); font-family:arial, serif;"><span class="Apple-style-span" style="font-size:medium;">Deleting useless operations</span></span></li><li><span class="Apple-style-span" style=" color: rgb(204, 204, 204); font-family:arial, serif;"><span class="Apple-style-span" style="font-size:medium;">Replacing several operations with one equivalent.</span></span></li><li><span class="Apple-style-span" style=" color: rgb(204, 204, 204); font-family:arial, serif;"><span class="Apple-style-span" style="font-size:medium;">Use algebraic laws to simplify instructions.</span></span></li><li><span class="Apple-style-span" style=" color: rgb(204, 204, 204); font-family:arial, serif;"><span class="Apple-style-span" style="font-size:medium;">Using special purpose instructions designed for special operand cases.</span></span></li></ul><p></p> <p class="MsoNormal" style="margin-top:6.0pt;margin-right:-16.7pt;mso-margin-bottom-alt: auto;margin-left:18.0pt;text-indent:-18.0pt;mso-list:l3 level1 lfo1;tab-stops: list 36.0pt"></p><p></p> <p class="MsoNormal"><span class="Apple-style-span" style="font-size:large;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"><br /></span></span></b></span></p><p class="MsoNormal"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"><span class="Apple-style-span" style="font-size:large;">Peephole optimization examples</span></span></span></b></p> <p class="MsoNormal"><span lang="EN-GB" style="font-size:11pt;"><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#FFCC00;">Treatment of single instructions with a constant operand</span></span></b></span></p> <p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l4 level1 lfo3; tab-stops:list 18.0pt"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">l</span></span><span style="font:7.0pt "Times New Roman""><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">A * 2 = A + A</span></span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l4 level1 lfo3; tab-stops:list 18.0pt"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">l</span></span><span style="font:7.0pt "Times New Roman""><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">A * 1 = A</span></span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l4 level1 lfo3; tab-stops:list 18.0pt"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">l</span></span><span style="font:7.0pt "Times New Roman""><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">A * 0 = 0</span></span><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l4 level1 lfo3; tab-stops:list 18.0pt"><span style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">l</span></span><span style="font:7.0pt "Times New Roman""><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">A / 1 = A</span></span></span></p> <p class="MsoNormal"><span lang="EN-GB"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#FFCC33;"><span class="Apple-style-span" style="font-size:large;">Replacing the Multiply operation with a Shift</span></span></span></span></p> <p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo4; tab-stops:list 18.0pt 36.0pt"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">l</span></span><span style="font:7.0pt "Times New Roman""><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">A := A * 4;</span></span></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo4; tab-stops:list 18.0pt 36.0pt"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#996633;">Can be replaced by 2-bit left shift (signed/unsigned)</span></span></span></p><p class="MsoNormal" style="margin-left:54.0pt;text-indent:-18.0pt;mso-list:l2 level2 lfo4; tab-stops:list 54.0pt 72.0pt"><span class="Apple-style-span" style="font-family:arial, serif;color:#CCCCCC;"><b><span class="Apple-style-span" style="color:#996633;"><span class="Apple-style-span" style="font-weight: normal;"><br /></span></span></b></span></p> <p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo5; tab-stops:list 18.0pt"><span class="Apple-style-span" style="font-family:arial, serif;"><span class="Apple-style-span" style="color:#FFCC33;"><span class="Apple-style-span" style="font-size:large;"><b>Folding jumps to jumps</b></span></span></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo5; tab-stops:list 18.0pt"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#996633;">A jump to an unconditional jump can copy the target address</span></span></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo5; tab-stops:list 18.0pt"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">JNE label 1</span></span></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo5; tab-stops:list 18.0pt"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">...</span></span></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo5; tab-stops:list 18.0pt"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">Label 1: JMP Label 2</span></span></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo5; tab-stops:list 18.0pt"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#996633;">Can be replaced by</span></span></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo5; tab-stops:list 18.0pt"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">JNE Label 2</span></span></span></p><p class="MsoNormal" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo5; tab-stops:list 18.0pt"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#996633;">As a result, Label 1 may become dead (unreferenced)</span></span></span></p> <p class="MsoNormal"><span lang="EN-GB"><span class="Apple-style-span" style="font-family:arial;"><b><span class="Apple-style-span" style="color:#FFCC66;"><span class="Apple-style-span" style="font-size:large;">Jump to Return</span></span></b></span></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><b><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="color:#996633;">A jump to a Return can be replaced by a Return</span></span></b></span></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><b><span class="Apple-style-span" style="color:#FFCC66;"><span class="Apple-style-span" style="color: rgb(204, 204, 204); font-weight: normal; ">JMP label 1</span></span></b></span></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><b><span class="Apple-style-span" style="color:#FFCC66;"><span class="Apple-style-span" style="color: rgb(204, 204, 204); font-weight: normal; ">...</span></span></b></span></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><b><span class="Apple-style-span" style="color:#FFCC66;"><span class="Apple-style-span" style="color: rgb(204, 204, 204); font-weight: normal; ">Label 1 RET</span></span></b></span></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><b><span class="Apple-style-span" style="font-weight: normal; "><span class="Apple-style-span" style="color:#996633;">Can be replaced by</span></span></b></span></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#CCCCCC;">RET</span></span></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="color:#996633;">Label 1 may become dead code</span></span></span></p> <p class="MsoNormal"><o:p><span class="Apple-style-span" style="font-family:arial;"> </span></o:p></p>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-43972425087980883462010-03-24T19:50:00.000-07:002010-03-30T02:52:07.237-07:00Parenthesised Road Of Lisp<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_h3vsN2adfD6psr-xeDPcjwG47lTmQ4_Lpk2jDtuwCeFmpmfcDYqXIHZqj5zK0q4ZVWSQefbVOFSXUdk9WH3eOTB-Z3xwFl4bPKAAUaE5geS2K1nWYwpZCWZHUqXqz1WHxNNr5ATDWPk/s1600/cadr.jpg.jpeg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 133px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_h3vsN2adfD6psr-xeDPcjwG47lTmQ4_Lpk2jDtuwCeFmpmfcDYqXIHZqj5zK0q4ZVWSQefbVOFSXUdk9WH3eOTB-Z3xwFl4bPKAAUaE5geS2K1nWYwpZCWZHUqXqz1WHxNNr5ATDWPk/s200/cadr.jpg.jpeg" border="0" alt="" id="BLOGGER_PHOTO_ID_5452418276355146706" /></a><span class="Apple-style-span" style="color:#CCCCCC;"><br /></span><p class="MsoNormal"><span class="Apple-style-span" style="font-family:Arial, serif;font-size:6;"><span class="Apple-style-span" style="font-size:19px;"><b><span class="Apple-style-span" style="color:#CCCCCC;"><br /></span></b></span></span></p><p class="MsoNormal" style="text-align: right;"><span class="Apple-style-span" style="font-family:Arial, serif;"><b><span class="Apple-style-span" style="color:#CC0000;"><span class="Apple-style-span" style="font-size:x-large;">Jack Dikian</span></span></b></span></p><p class="MsoNormal" style="text-align: right;"><span class="Apple-style-span" style="font-family:Arial, serif;"><b><span class="Apple-style-span" style="color:#CCCCCC;"><span class="Apple-style-span" style="font-size:small;">December 1998</span></span></b></span></p><p class="MsoNormal" style="text-align: right;"><span class="Apple-style-span" style=" font-weight: bold; font-family:Arial, serif;font-size:19px;"><span class="Apple-style-span" style="color:#CCCCCC;">Introduction</span></span></p> <p class="MsoNormal" style="text-align: justify;"><b><span style="font-family:Arial;"><o:p><span class="Apple-style-span" style=" font-weight: normal; "><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">Back in the 1980’s the author was involved in writing a formal (limited) grammar to support the development of an “expert” system to deal with the diagnosis and configuration of Unix file systems.</span></span><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span></o:p></span></b></p> <p class="MsoNormal" style="text-align:justify"><span class="apple-style-span"><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">When reviewing a number of artificial (programming) languages we become interested in LISP. We realised that it’s strong expressive language for stating computational linguistics and flexible data constructs might meet the needs of yet to be fully defined project.</span></span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span class="apple-style-span"><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">We were particularly interested in manipulating symbols (words, parts of speech) and structured objects (sequences) and perform express operations on them without having to worry about how these “natural” concepts are actually represented in the machine. Also, the ability for routines to call themselves with no restrictions as found in the recursion techniques of LISP.</span></span><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">Our need to understand LISP took us down a very </span></span><span class="apple-style-span"><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">parenthesised road. This is a very brief introduction of what we saw in LISP.</span></span></span></span></span></p> <p style="text-align: justify;margin-top: 6pt; margin-right: 0pt; margin-left: 0pt; margin-bottom: 0.0001pt; "><b><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">What is LISP</span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></b></p> <p style="margin-top:6.0pt;margin-right:0pt;margin-bottom:0pt;margin-left:0pt; margin-bottom:.0001pt;text-align:justify"><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">Lisp is a programming language developed as a mathematical notation for computer programs, greatly influenced by the work of </span></span><st1:place st="on"><st1:placename st="on"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">Alonzo</span></span></st1:placename><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span><st1:placetype st="on"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">Church</span></span></st1:placetype></st1:place><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">'s</span></span><span class="apple-converted-space"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">lambda calculus and become, pretty much, the programming language staple for artificial language research. Lisp derives its name from LIST Processing and it is no surprise that linked lists is one of LISP’s key data constructs. LISP provided a basis or became a genesis for significant concepts in early computer science thinking. LISP’s ability to type data objects instead of variables gives it the flexibility to provide native support for arranging data into a </span></span><span class="apple-style-span"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">hierarchy based on subset relationship. </span></span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></p> <p style="margin-top:6.0pt;margin-right:0pt;margin-bottom:0pt;margin-left:0pt; margin-bottom:.0001pt;text-align:justify"><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">Linked lists are one of Lisp’s major</span></span><span class="apple-converted-space"><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">data structures, and Lisp source</span></span><span class="apple-converted-space"><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">is itself made up of lists. As a result, Lisp programs can manipulate source as a data structure, giving rise to both grammar parsing and even creating new syntax. The inter-changeability of source (formal grammar defining language) and data gives LISP its unique syntax. All source is written as</span></span><span class="apple-converted-space"><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span><i><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">s-expressions</span></span></i><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">, or parenthesized lists. A call to a routine is written as a list with the operator's name first, and the arguments following; for instance, a function F that takes 2 arguments might be called using</span></span><span class="apple-converted-space"><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span><code><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC33;">(</span><span class="Apple-style-span" style="color:#CCCCCC;">f x y</span><span class="Apple-style-span" style="color:#FFCC33;">)</span><span class="Apple-style-span" style="color:#CCCCCC;">.</span></span></span></code></span></p> <p style="text-align: justify;margin-top: 6pt; margin-right: 0pt; margin-left: 0pt; margin-bottom: 0.0001pt; "><span class="Apple-style-span" style="font-family:Arial, serif;"><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"><br /></span></span></b></span></p><p style="text-align: justify;margin-top: 6pt; margin-right: 0pt; margin-left: 0pt; margin-bottom: 0.0001pt; "><b><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">Why LISP</span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></b></p> <p style="margin-top:6.0pt;margin-right:0pt;margin-bottom:0pt;margin-left:0pt; margin-bottom:.0001pt;text-align:justify"><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">The biggest advantage LISP has over other languages such as C, C++, and PASCAL is due to the idea that LISP follows the philosophy that what's good for the language's designer is also good for the language's users. Consequently, the programmer, unlike in other languages, can add features to the language making it a self-hosting language. LISP tends to provide a more transparent map between ideas about how the program functions and its source. This is therefore ideal for situations where problems are partially specified and/or where problems whose nature is not fully understood at the outset. Approximation can be developed and refined interactively over time.</span></span><span class="Apple-style-span" style="font-family:Verdana, serif;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span></p> <p class="MsoNormal" style="text-align:justify"><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">Also where a problem involves multiple representations of data from varying sources, </span></span></span><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">LISP's flexible data abstraction system makes configuring robust systems simpler.</span></span></span></p> <p class="MsoNormal" style="text-align: justify;margin-top: 6pt; "><span class="apple-style-span"><b><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">The Parentheses<span class="Apple-style-span" style="font-size:large;"><span class="Apple-style-span" style="color:#FFCC00;"> ( )</span></span></span></span></span></b></span><b><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></b></p> <p class="MsoNormal" style="margin-top:6.0pt;text-align:justify"><span class="apple-style-span"><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">For people like me who was used to looking at C, Pascal, and even Fortran.</span></span><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">LISP was initially confusing. Its syntax was nothing like I had seen before (perhaps with the e</span></span></span></span><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">xception for APL which was itself mathematically inspired and served as a executable notation for mathematical algorithms). Parentheses are the basic building blocks of LISP. All functions, operations, and scripts take place within parentheses. Complete functions have a matching number of open and closed parentheses.</span></span></span></p><p class="MsoNormal" style="margin-top:6.0pt;text-align:justify"><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></p><p class="MsoNormal" style="margin-top:6.0pt"><span class="apple-style-span"><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></span></p> <p class="MsoNormal" style="text-align: right;margin-top: 6pt; "><span class="apple-style-span"><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">When merging lists</span></span></span></span><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></p> <p class="MsoNormal" style="text-align: right;margin-top: 6pt; "><span class="apple-style-span"><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC33;">(</span></span><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">APPEND</span></span></b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> `</span><span class="Apple-style-span" style="color:#FFCC33;">((</span><span class="Apple-style-span" style="color:#CCCCCC;">A B</span><span class="Apple-style-span" style="color:#FFCC33;">)(</span><span class="Apple-style-span" style="color:#CCCCCC;">C D</span><span class="Apple-style-span" style="color:#FFCC33;">)))</span></span></span></span></p><p class="MsoNormal" style="text-align: right;margin-top: 6pt; "><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span><span class="apple-style-span"><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">Answer</span></span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC33;"> (</span><span class="Apple-style-span" style="color:#CCCCCC;">A B C D</span><span class="Apple-style-span" style="color:#FFCC33;">)</span></span></span></span></p><p class="MsoNormal" style="text-align: right;margin-top: 6pt; "><span class="Apple-style-span" style="font-family:Arial, serif;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"><br /></span></span></span></p><p class="MsoNormal" style="text-align: right;margin-top: 6pt; "><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span><span class="apple-style-span"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">Creates a function called </span></span><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">ADDIT</span></span></b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> that takes two parameters</span></span></span><span class="apple-converted-space"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span><span class="apple-style-span"><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">x</span></span></span></span><span class="apple-converted-space"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span><span class="apple-style-span"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">and</span></span></span><span class="apple-converted-space"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span><span class="apple-style-span"><span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">y</span></span></span></span><span class="apple-converted-space"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span><span class="apple-style-span"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">and adds them.</span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></span></p> <p class="MsoNormal" style="margin-top:6.0pt"></p><div style="text-align: right;"><code><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">(DEFUN </span></span><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">ADDIT</span></span></b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span><span class="Apple-style-span" style="color:#FFCC33;">(</span><span class="Apple-style-span" style="color:#CCCCCC;">x y</span><span class="Apple-style-span" style="color:#FFCC33;">) (</span><span class="Apple-style-span" style="color:#CCCCCC;">+ x y</span><span class="Apple-style-span" style="color:#FFCC33;">))</span></span></span></code><span class="apple-converted-space"><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></span></span></div><span style="font-family:Arial;"><div style="text-align: right;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"><br /></span></span></div> <code><div style="text-align: right;"><span class="Apple-style-span" style="font-family:Arial, serif;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC33;">(</span></span><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">ADDIT</span></span></b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> 3 4</span><span class="Apple-style-span" style="color:#FFCC33;">)</span></span></span></div></code><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span><code><div style="text-align: right;"><span class="Apple-style-span" style="font-family:Arial, serif;"><code><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">Answer</span></span></span></code><code><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> 7 </span></span></span></code></span></div></code></span><p></p> <h4 style="text-align: right;"><span style="font-weight: normal;mso-bidi-font-weight:boldfont-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;">Creates a function for calculating powers</span></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></span></h4> <p class="MsoNormal"></p><div style="text-align: right;"><span class="Apple-style-span" style="font-family:Arial, serif;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC33;">(</span><span class="Apple-style-span" style="color:#CCCCCC;">defun expon</span><span class="Apple-style-span" style="color:#FFCC33;"> (</span><span class="Apple-style-span" style="color:#CCCCCC;">base powr</span><span class="Apple-style-span" style="color:#FFCC33;">)</span></span></span></div><span style="font-family:Arial;font-size:11.0pt;color:black;"><div style="text-align: right;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC33;">(</span><span class="Apple-style-span" style="color:#CCCCCC;">cond </span><span class="Apple-style-span" style="color:#FFCC33;">((</span><span class="Apple-style-span" style="color:#CCCCCC;">zerop powr</span><span class="Apple-style-span" style="color:#FFCC33;">)</span><span class="Apple-style-span" style="color:#CCCCCC;"> 1</span><span class="Apple-style-span" style="color:#FFCC33;">)</span></span></div> <span class="apple-style-span"><div style="text-align: right;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC33;">((</span><span class="Apple-style-span" style="color:#CCCCCC;">evenp powr</span><span class="Apple-style-span" style="color:#FFCC33;">) (</span><span class="Apple-style-span" style="color:#CCCCCC;">expon </span><span class="Apple-style-span" style="color:#FFCC33;">(</span><span class="Apple-style-span" style="color:#CCCCCC;">* base base </span><span class="Apple-style-span" style="color:#FFCC33;">) (</span><span class="Apple-style-span" style="color:#CCCCCC;">truncate powr 2</span><span class="Apple-style-span" style="color:#FFCC33;">)))</span></span></div></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span><span class="apple-style-span"><div style="text-align: right;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#FFCC33;">(</span><span class="Apple-style-span" style="color:#CCCCCC;">t </span><span class="Apple-style-span" style="color:#FFCC33;">(</span><span class="Apple-style-span" style="color:#CCCCCC;">* base </span><span class="Apple-style-span" style="color:#FFCC33;">(</span><span class="Apple-style-span" style="color:#CCCCCC;">expon </span><span class="Apple-style-span" style="color:#FFCC33;">(</span><span class="Apple-style-span" style="color:#CCCCCC;">* base base</span><span class="Apple-style-span" style="color:#FFCC33;">)</span><span class="Apple-style-span" style="color:#FFCC33;"> (</span><span class="Apple-style-span" style="color:#CCCCCC;">truncate powr 2</span><span class="Apple-style-span" style="color:#FFCC33;">))))))</span></span></div></span></span><p></p> <p class="MsoNormal" style="text-align: right;"><span class="Apple-style-span" style=" color: rgb(42, 42, 42); font-weight: 800; font-family:Arial, serif;font-size:15px;"><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-weight: normal; "> </span> </span></p> <p class="MsoNormal" style="margin-top:6.0pt"><span style=" ;font-family:Arial;font-size:11.0pt;"><o:p> </o:p></span></p>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-504607473692405862010-03-06T17:42:00.000-08:002010-03-26T00:36:54.239-07:00Experiences That Are Quite Unreal<h2 style="text-align: right;margin-top: 0cm; margin-right: 0cm; margin-bottom: 5.3pt; margin-left: 0cm; "><span class="Apple-style-span" style="font-family:Arial, serif;font-size:130%;color:#404040;"><span class="Apple-style-span" style="font-size:15px;"><br /></span></span></h2> <p class="publication" style="text-align: right;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><i><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#996633;">Sydney Morning Herald</span></span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></i></p> <p class="date" style="text-align: right;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><i><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CC9933;">Sunday June 28, 1992</span><span class="Apple-style-span" style="color:#CC9933;"><o:p></o:p></span></span></i></p> <p class="originalauthor" style="text-align: right;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><i><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CC9933;">By MONIQUE FARMER</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></i></p> <p style="text-align: right;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:x-large;"><span class="Apple-style-span" style="color:#CC0000;"><b>Jack Dikian and Virtual Worlds</b></span></span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="margin-top:0cm;margin-right:0cm;margin-bottom:6.6pt;margin-left:0cm"><span style="font-family:Arial;font-size:11.0pt;"><o:p><span class="Apple-style-span" style="color:#CCCCCC;"> </span></o:p></span></p> <p style="margin-top:0cm;margin-right:0cm;margin-bottom:6.6pt;margin-left:0cm"><span style="font-family:Arial;font-size:11.0pt;"><o:p><span class="Apple-style-span" style="color:#CCCCCC;"> </span></o:p></span></p> <p style="margin-top:0cm;margin-right:0cm;margin-bottom:6.6pt;margin-left:0cm; text-align:justify"><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">IT USUALLY takes years for a computer technology to go from the laboratory or R & D department to the mass market. Those lucky enough to experience a new technology in its infancy are generally only the well connected or the wealthy</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="margin-top:0cm;margin-right:0cm;margin-bottom:6.6pt;margin-left:0cm; text-align:justify"><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">An exhibition at the Powerhouse museum (Sydney) next month will allow the public to experience two exciting and quite recently developed technologies - virtual reality and the computerised transformation of images known as "morphing".</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="margin-top:0cm;margin-right:0cm;margin-bottom:6.6pt;margin-left:0cm; text-align:justify"><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">The exhibitions, called "Virtual Reality" and "</span><st1:place st="on"><st1:placename st="on"><span class="Apple-style-span" style="color:#CCCCCC;">Altered</span></st1:placename><span class="Apple-style-span" style="color:#CCCCCC;"> </span><st1:placetype st="on"><span class="Apple-style-span" style="color:#CCCCCC;">States</span></st1:placetype></st1:place><span class="Apple-style-span" style="color:#CCCCCC;">", will run during the school holidays but the Powerhouse museum expects as many adults as children to attend.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">The Powerhouse claims to be the first museum in the world to conduct an exhibition, albeit a temporary one, on virtual reality.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">According to the museum's curator of mathematics and computing, Matthew Connell, the aim of the Powerhouse has always been to feature new technologies.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">"We have a tradition of presenting new technologies to the Australian public," said Connell. "These are important technologies which will have enormous impact, and we want to be there from the very beginning."</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">The virtual-reality exhibition will be a hands-on experience - people wearing headsets and holding joysticks will interact in computerised "virtual"worlds.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">There is a choice of two virtual-reality experiences - Dactyl Nightmare(prehistoric birds swoop on you from great heights as you avoid an opponent)and Capture the Flag (ambush your opponent and seize his flag before you get shot).</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">Each fantasy experience takes three minutes and about 120 people will be able to participate each day. The visuals of Dactyl Nightmare and Capture the Flag will be shown on television monitors for the benefit of those who, because of time limitations, aren't able to participate.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">Connell is not thrilled by the content of the virtual-reality experiences, but says the most important thing is enabling people to experience the technology.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">"Dactyl Nightmare and Capture the Flag are shoot-'em-up games - they're not as bad as some video games, but that was all that was available to us," he said. "We're more interested in showing people the technology than whether the content is ideal. For a permanent exhibition we'd present a much wider choice than video arcade narratives.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">"A lot of people will be interested in virtual reality as a new experience, but we want to draw attention to the enormous potential of the technology: for example, the less-sensationalist possibilities in science, education, design," said Connell.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">The Powerhouse was investigating the feasibility of a virtual-reality display and speaking to companies in the </span><st1:country-region st="on"><span class="Apple-style-span" style="color:#CCCCCC;">United States</span></st1:country-region><span class="Apple-style-span" style="color:#CCCCCC;"> and </span><st1:country-region st="on"><span class="Apple-style-span" style="color:#CCCCCC;">Japan</span></st1:country-region><span class="Apple-style-span" style="color:#CCCCCC;"> when it discovered a </span><st1:city st="on"><st1:place st="on"><span class="Apple-style-span" style="color:#CCCCCC;">Melbourne</span></st1:place></st1:city><span class="Apple-style-span" style="color:#CCCCCC;"> company that had begun distributing virtual-reality systems.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">The Virtual Reality Corporation, which formed earlier this year, has the only two commercial virtual-reality systems in </span><st1:country-region st="on"><st1:place st="on"><span class="Apple-style-span" style="color:#CCCCCC;">Australia</span></st1:place></st1:country-region><span class="Apple-style-span" style="color:#CCCCCC;">. They are aimed at the education market and were produced by W Industries in the </span><st1:country-region st="on"><st1:place st="on"><span class="Apple-style-span" style="color:#CCCCCC;">United Kingdom</span></st1:place></st1:country-region><span class="Apple-style-span" style="color:#CCCCCC;"> -systems are already installed in some European and American clubs and retail stores.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">The museum's director, Terence Measham, said the Powerhouse was keen to develop a permanent virtual-reality exhibition.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">The other temporary exhibition, "Altered States", will focus on the popular technology "morphing", in which a computer seamlessly transforms one object on-screen into another. The technique was used in Michael Jackson's video clip Black and White, in the film Terminator 2, and is being used in some Australian television commercials.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">The exhibition will feature two graphics simulations on Silicon Graphics workstations which are explored using a spaceball, or 3-D mouse. People will be able to fly over a fractal-generated landscape in a paper aeroplane, and walk through an architect's design of a building.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><b><span class="Apple-style-span" style="font-size:large;"><span class="Apple-style-span" style="color:#CC6600;">Jack Dikian</span></span></b><span class="Apple-style-span" style="color:#CCCCCC;">, a futurist with Silicon Graphics, will be at the museum, conducting demonstrations and answering questions on computerised image transformation.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">"We hope people gain an understanding of how interactive 3-D graphics can be used in the workplace, and that they develop an appreciation of what the technology can do for them," </span><b><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="color:#CC6600;">Dikian</span><span class="Apple-style-span" style="color:#CCCCCC;"> </span></span></b><span class="Apple-style-span" style="color:#CCCCCC;">said.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">He said that people seeing a simulation for the first time usually reacted with stunned silence. "Most people are struck by what they're seeing. You'd never expect to look down at a mountain as you fly over it. People often ask if they're watching a movie," he said.</span><span class="Apple-style-span" style="color:#CCCCCC;"><o:p></o:p></span></span></p> <p style="text-align: justify;margin-top: 0cm; margin-right: 0cm; margin-bottom: 6.6pt; margin-left: 0cm; "><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#CCCCCC;">"Virtual Reality" is on daily from next Saturday to Wednesday, July 8. It is recommended for children aged 10 and over. Bookings must be made in person on the day at the museum for a chance to participate. Twenty names will be drawn from a barrel each hour. "Altered States" is on daily from Monday, July 13, to Sunday, July 19, from 10 am to 4 pm.</span><o:p></o:p></span></p>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-34549055420015566592010-03-06T15:32:00.000-08:002010-03-25T23:53:53.139-07:00Critical Principles In Establishing A Support Structure<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwwDfUaxI5kmLy9i9ZTpB5u4WqN0nxEJ-MGfgA2Nf18yCRDKRjSyipblb15eMJlEMKjKoswf6Ib8zJ_hFhmFNT82T9MLIT9MckEx-DJFXMB89bNEyqA8B3X6tHPzk87nHbpCxVZCTPkQg/s1600-h/support.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 184px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwwDfUaxI5kmLy9i9ZTpB5u4WqN0nxEJ-MGfgA2Nf18yCRDKRjSyipblb15eMJlEMKjKoswf6Ib8zJ_hFhmFNT82T9MLIT9MckEx-DJFXMB89bNEyqA8B3X6tHPzk87nHbpCxVZCTPkQg/s200/support.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5446044920930327906" /></a><br /><p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:11.0pt;"><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: right;"><span class="Apple-style-span" style=" font-style: italic; "><b><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:x-large;">Jack Dikian</span></span></b></span></p><p class="MsoNormal" style="text-align: right;"><span class="Apple-style-span" style=" font-style: italic; "><span class="Apple-style-span" style="font-style: normal; "><span class="Apple-style-span" style="font-size:x-large;"><b><span class="Apple-style-span" style="font-family:arial;">ABSTRACT</span></b></span></span></span></p> <p class="MsoNormal" style="text-align: right;"><span style=" ;font-size:11pt;"><o:p><span class="Apple-style-span" style="font-family:arial;"> <span class="Apple-style-span" style="font-size:large;">Media Lab Pacific</span></span></o:p></span></p><p class="MsoNormal" style="text-align: right;"><span class="Apple-style-span" style="font-family:arial, serif;"><span class="Apple-style-span" style="font-size:large;">June, 1984</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Among the many services a typical Support Centre provides to its client base, perhaps the ability to maintain control over the many unresolved or pending tasks is .the most important. A typical Support Centre facilitating a medium sized computer supplier can handle hundreds of queries a day. The type and complexity of the queries can vary greatly. As platforms become more and more compatible, not only does the variety of tools and packages increase, but the source of those tools and packages become increasingly diverse. Good examples of this are apparent in the Unix and DOS environments. These days, both environments promote a great degree of compatibility; exhibit a large variety of readily available software solutions, as well as fostering the proliferation of independent software developers competing to sell the perfect accounting system, the fastest DBMS, and even the trickiest adventure game. All of this can of course be contrasted against a less open system such as the proprietary operating systems. Here, major tools and packages are often written in close collaboration with the original platform manufacture. Providing support in an open environment may in some cases require a Support Centre to be many things to many people. A well thought out support strategy aided by a comprehensive task tracking system can make the difference between an effective support unit and one that is pure hindrance to all parties concerned. This paper presents what I consider important when setting up a formal Support Centre in an open environment, as well providing some design ideas for a productive task tracking system.</span></span></p> <p class="MsoNormal"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><b>1. Introduction</b></span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">A Support Centre is usually that part of the overall EDP effort that attempts to answer queries and/or coordinates the resolution of problems that clients experience while using a particular system. The support effort, philosophy, and practice can span between two functionally varying extremes. At one end of this spectrum, the Support Centre and its personnel can be extremely specialised and thus attempt to provide the same sort of client support as that expected directly from back room technicians. On the other hand, the Support Centre may be setup such that it caters for a much broader, and hence more general client base. At Media-Lab Pacific a less technical support team is supported by a more rigorous system of call recording, problem escalation, task distribution, and follow up strategy. Factors which often determine the type of support that will be provided out of a formal Support Centre include the following considerations:</span></span></p> <ul style="margin-top:0cm" type="disc"> <li class="MsoNormal"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The variation products to be supported.</span><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></li> <li class="MsoNormal"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The stability of the target environment.</span><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></li> <li class="MsoNormal"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The standard of service expected from the support team.</span><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></li> <li class="MsoNormal"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The size of the EDP team from which support is provided.</span></span></li></ul> <p class="MsoNormal"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><b>2. The Degree of Product Variety</b></span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Open environments such as Unix cater for, and encourage the proliferation of standard non-proprietary technologies. The number and variety of available packages and utilities can be astronomical. My latest copy of Sun Microsystems’ Catalyst (catalogue of third party hardware/software SPARCware solutions) lists more than 2000 products in 22 very broad categories. Silicon Graphics boasts a heafty 700 page Applications Directory. At a different level, most Unix systems come to us with at least three file backup mechanisms, two editors, two command line interpreters, and a host of vendor added features. One particular manufacturer even provides two flavours of Unix running on the same machine at the same time.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Although much of this type of variety comes about from a genuine need for a particular feature, there is nevertheless sufficient overlap and a great deal of inherent flexibility to allow the client to use any utility based almost entirely on preference alone. Back at home, things are not too much easier either. The PC industry has never been in a stronger position, providing great performance for value; a host of industry standard plug ins, migration paths, and a world of software.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The wide range of products are often indicative of the large number of independent vendors, all committed to making their goods available on these platforms. Whilst a suite of products written for one proprietary environment may feature common menu structures, file layouts, control files, naming conventions, and even consistent documentation, a series of products supplied by different vendors in an open environment will often possess no underlying uniformity. Contrast for example DEC’s VMS operating system against Unix. VMS, like Unix parades a large number of layered products. However, unlike Unix, layered products under VMS all exhibit the same underlying design philosophy. Control keys always represent similar actions, help files always display similar layouts, and error messages always have the same consistent format.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Each product in an open environment will require the same high level of technical training before it can be properly supported. In such an environment, a generalised type Support Centre is most effective. Personnel in this centre may have an overall systems, analytical and communication skills, but may lack the specific specialised product knowledge. There are simply too many products for any one individual to know well. In such an environment, the Support Centre acts as an interface between the client and other more specialist EDP groups. How this interfaces is likely to work is closely linked with factors contributing to the overall style of Support Centre. For example, the overall size of the EDP group, the size of the client base, agreed turnaround commitments, and the sophistication of task tracking system will often determine the interface mechanism.</span></span></p> <p class="MsoNormal"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><b>3. The Stability of the Target Environment</b></span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The stability of the typical environment that requires support is a very important factor in determining the type of support expected from a Support Centre. Site instability may be inherent within a certain client group or may transcend them. In an environment which has just gone through a major systems conversion, upgrade or simply taken on new responsibilities, it is typical that that site will experience a period of instability. On the other hand, a software house involved in developing systems around products that you are supporting will seem in a sense always unstable. In the later case, queries will often be raised reflecting the need for more detailed specifications, reporting faults which may or may not be associated with your product, and importantly, the reporting of legitimate, but low level anomalies which get picked up due to the nature of this sort of work.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Both of these scenarios need to be addressed. These support requirements will inevitably exist in both open and proprietary environments. However, in an open environment, not only are there many more independent groups developing systems, but often, these groups will know as much about your product as your Support Centre personnel. This is especially true if the Support Centre is of a generalised type. Clients experiencing significant downtime due to various reasons including conversion processes, come closest to justifying the need to contact back room staff directly. It is also this very desire that raises the many concerns for the quality of support. Clients more often than not, always prefer to discuss their problems with back room personnel directly. However, there are just as many important arguments for clients to continue to address their problems through a centralised Support Centre. Many of these arguments are to do with a supplier providing a consistent level of support, as opposed to a see-sawing effort depending on the availability of key personnel (See figure 1). Figure 1 illustrates how the quality of support (*) can vary between two great extremes when the Support Centre is basing their support effort on key back room personnel. When these people are available, the support effort is at its peak. However, when they are unavailable, support effort is reduced to a minimum. The use of a more generalised support team (-) allows the Support team to provide a much more consistent support effort. It is neither as good as the back room personnel, nor as bad when they are not available. In time, this quality will rise. Providing consistent support, with an agreed service level come about most effectively through the implementation of service level agreements between yourself and the client base. The section discussing the standard of service expectation will further detail the implementation of service level agreements.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Fig. 1</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">In the situation where a client is going through a major conversion process, or where a major upgrade is to be released, the generalised Support Centre should be supplemented by back room technicians rather than be abandoned. The client should be encouraged to schedule the conversion process, as well as assisted in associated areas such as risk analysis, resource allocation, and contingency planning. Both the client and the supplier will only then really appreciate each others requirements. This liaison process will allow the Support Centre to prepare more adequately for this situation. Without this sort of preparation, the support personnel are, at best, most likely to allocate the highest possible priority available to them before escalating the query to a pool of back room personnel. The problem with this approach is of course that there may well be any number of such high priority requests already outstanding. Some suppliers nominate certain individuals to be responsible for the support of one or more clients. Account managers are usually very effective in providing a personalised style of support. They can become acquainted with the specific needs of the client, as well as develop an understanding for the longer term directions of the organisation. These people also represent the supplier and its resources. The negative aspects of this approach however are significant in an open environment. The main problem is once again availability. The greater the dependence on the one account representative, the more exposed both parties become.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Account managers also tend to have strong consulting, negotiating, or managerial skills. These qualities are very important when dealing with sites that feel undersold. At the end of the day however, hands on representation will still be required. Problems need not only be understood, but fixed in a timely manner.</span></span></p> <p class="MsoNormal"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><b>4. The Standard of Service Expected from the Support Team</b></span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Often, the effectiveness of a Support Centre is erroneously measured by the quality of on the spot advice the support personnel can provide. For example, there is always a perception that a particular organisation has a good support operation if clients constantly receive informative advice immediately. On the other hand, giving the client a reference number with the promise that an expert will attend to their call as soon as possible raises, in some peoples’ minds, a certain amount of cynicism. There is simply no formal framework by which to gauge the effectiveness of the support in non-subjective terms. Questions like "Why can’t we talk to this expert direct...?", "why do we need to explain this problem all over again?" and so on are asked, and asked of the wrong people. This concern is accentuated when the overhead costs of maintaining the support effort are passed on to the client base. Soon, some clients will attempt to contact back room personnel directly, avoiding the so called front line. Clients who judge a Support Centre ineffective, fairly or otherwise will always attempt to bypass formal support structures. In general, clients believe that back room personnel are the ones who really understand the problem; they know the system and have the facilities to fix it. Everyone else, including the Support Centre are nothing more than "go betweens." To some extent, there is a lot of truth in this belief. Support consultants, specially in a help desk centre do not have the luxury to see the problem for themselves. They can only react to what the client thinks is seeing.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Often, if the Support Centre can’t resolve a problem over the phone, they are forced to escalate the task to someone who can. Back room personnel may be so familiar with particular anomalies that they will save the client the bother of describing peripheral, and in retrospect, unnecessary detail. Also, where a support consultant may tackle a new query by first examining a wide range of possible causes, a back room technical person, faced with the same task may grasp the kernel of the problem much quicker. The other side of the coin holds a different picture. It is also true that most back room guys do not want to be interrupted by users. Back room personnel can handle direct contacts in various, and in some cases undesirable ways. Perhaps the three most common reactions I have seen are:</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">They may refer the problem back to the Support Centre and hang up in the clients ear. This, as it turns out is probably the best course of action in the long run.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Secondly, they may promise the client prompt resolution knowing full well that they will neither have the time nor the inclination to carry it through.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Finally, they may well resolve the problem in a timely manner, but fail to inform the client, or their peers of the solution.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Back room personnel are never hired based on their diplomacy, communication, or even business skills, most of these people will call a spade a spade. This is regardless of who the caller may be and the sort of effort the sales team expended to secure them.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Back room personnel, the development team, systems managers, operators, DBA’s </span><i><span class="Apple-style-span" style="font-family:arial;">etc are </span></i><span class="Apple-style-span" style="font-family:arial;">highly paid professionals who, without stating the obvious, have a job to do. It’s simply not as if they are waiting around idle for someone to ring them with a problem. Often they are working against tight schedules, with priorities not including impromptu client requests. Often, what starts off as a very brief interruption may eventually result in a great deal of wasted time and resources. In the event that a problem has been accepted directly in such an environment, there is no real guarantee for effective follow up, no framework for providing a realistic turnaround time, or even a rudimentary concept of ownership.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">So what is a fair expectation of a Support Centre, and what can a supplier do in terms of its support policy? The best way to avoid unreasonable client expectation is to tell them exactly what you will, and will not do. If the Support Centre is manned between the hours of 8:30am and 6:00pm, then the client should be made very aware that support is not available outside these hours. If the Support Centre is promising a maximum turnaround time of 3 hours for critical problems, then clients should be sold the support service based on this condition. With the same token, published support hours are required to be adhered to by the support personnel.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">A support facility between 8:30am and 6:00pm means just that, and does not mean 8:45am to 6:15pm. Also, a promise of a 3 hour turnaround means that if an answer is not found within that time flame, then the client is informed, and a suitable alternative arrangement is made. The creation and regular maintenance of a standard service level agreement is not only a very effective method of making your position clear in terms of the support delivery, but it is also a vehicle by which the client can use to request certain specific functions. The implications of the service level agreement will drive the practice and policy of the support personnel. Once the Support Centre is comfortable with this agreement, every new client likely to use your support facility should understand and accept the terms and conditions of the agreement. In the event that a particular client has specific requirements outside the scope of the standard service level agreement, then a new agreement should be forged before formal support commences.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The new service level should be such that both parties feel comfortable with. It is no use for example the client requesting call back on reported faults within an hour when the Support Centre averages 2 day turnaround time. Ultimately, an attitude where the user pays should be employed. If a client has a need for 24 hour support, and your Support Centre only provides an 18 hour window, then the idea that the client pay for facilitating the expansion (should you agree) of the support window should not be discarded lightly. It is also important that the service level agreement is structured such that it complements the original maintenance or service warranty contract. The sort of elements in a typical service level agreement should include:</span></span></p> <ul style="margin-top:0cm" type="disc"> <li class="MsoNormal" style="text-align:justify;mso-list:l1 level1 lfo2; tab-stops:list 36.0pt;mso-layout-grid-align:none;text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Support Centre hours. </span><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></li> <li class="MsoNormal" style="text-align:justify;mso-list:l1 level1 lfo2; tab-stops:list 36.0pt;mso-layout-grid-align:none;text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Method of priority allocation.</span><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></li> <li class="MsoNormal" style="text-align:justify;mso-list:l1 level1 lfo2; tab-stops:list 36.0pt;mso-layout-grid-align:none;text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The meaning of priorities and corresponding actions.</span><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></li> <li class="MsoNormal" style="text-align:justify;mso-list:l1 level1 lfo2; tab-stops:list 36.0pt;mso-layout-grid-align:none;text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Escalation mechanism, and responsibility lines. </span><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></li> <li class="MsoNormal" style="text-align:justify;mso-list:l1 level1 lfo2; tab-stops:list 36.0pt;mso-layout-grid-align:none;text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Forms of expected documentation. </span><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></li> <li class="MsoNormal" style="text-align:justify;mso-list:l1 level1 lfo2; tab-stops:list 36.0pt;mso-layout-grid-align:none;text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Emergency arrangements.</span><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></li> <li class="MsoNormal" style="text-align:justify;mso-list:l1 level1 lfo2; tab-stops:list 36.0pt;mso-layout-grid-align:none;text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Turnaround times for various types of situations. </span><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></li> <li class="MsoNormal" style="text-align:justify;mso-list:l1 level1 lfo2; tab-stops:list 36.0pt;mso-layout-grid-align:none;text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Contact name nomination guidelines.</span><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></li> <li class="MsoNormal"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Support Centre responsibilities.</span><span class="Apple-style-span" style="font-family:arial;"><o:p></o:p></span></span></li> <li class="MsoNormal"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Problem status reporting procedures.</span></span></li></ul> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The presence of such a document takes away any misconceptions of the Support Centre’s role. It clearly identifies what the Support Centre will do, and how it will do it. Importantly, clients can compare how the Support Centre is performing against how they have formally committed to perform. Anomalies can be raised and resolution sought at the appropriate business level. This type of structure enforces accountability at all levels. What this understanding also does is throw back some responsibility on to the user of the Support Centre. In the same way that the client can highlight difficulties with the Support Centre, the Support Centre itself can rightly object to providing a support facility if the client is not upholding their end of the bargain.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">For example, if the client has been asked to document a particular problem in accordance with the service level procedures, and have failed to do so, then the Support Centre can legitimately hold that query pending until the relevant documentation is supplied. The Size of the EDP Team </span><i><span class="Apple-style-span" style="font-family:arial;">from </span></i><span class="Apple-style-span" style="font-family:arial;">which Support is Provided In a very small EDP team comprising say of 15 members or less, it can be argued that there isn’t a large enough infrastructure to support a dedicated support group. However, as the EDP group grows, and the overall EDP effort divides into specific speciality areas such as R&D, business consulting, operations, and systems delivery, it becomes more and more apparent that a support type team is necessary. In some cases, this support team is a misnomer, and what the group really needs is an office administrator/telephonist/goofier. However, as the client base grows and their requirements become more sophisticated, a single contact point within the EDP group becomes unavoidable. This is the support team. Not only does the support team provide fault diagnostics and rectification, but also a host of many other functions.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">For example, the support team can coordinate and follow up the resolution of queries within the EDP group. The Support Centre can act as an interface between the client and the supplier, as well as interface between the many sub groups within the EDP group (See Figure 2). Problem prioritisation, logging, and reporting is also something typically handled without a Support Centre. These functions help glue the overall EDP effort as well as streamline the many client requests. Importantly they free the other groups from continual client interruptions, and channel the filtered requests to the most appropriate people. The client on the other hand sees a single consistent face who is prepared to accept ownership of the problem until it is resolved.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">In order for the Support Centre to maintain control over the many unresolved tasks, and also provide efficient call reporting and statistics facilities, a sophisticated task tracking or logging system is indispensable. The task tracking system should not be confused with a general task scheduling, or even an accounting system. Although both a scheduling and account charging system can be implemented underneath the task tracking system, in general, these modules should exist independently. The task tracking system should however possess the following features:</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">A multiuser system with the ability to differentiate between user groups in order to provide in context displays and data update restrictions.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">An inter/intra office E-mail and fax interface system.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The ability to accept task priority allocations, and prompt the user with the appropriate action based on a setup database.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The ability to accept and or automatically allocate expected completion times for tasks based on a number of criteria such as priority, client expectation, task type and client status.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The ability to accept historical notes and provide online query reporting based on client, task type, task status or chronological order.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The overall system should be fast enough to service a real interactive session. Typically, queries and actions should be generated at speeds that match the telephone conversation.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The system should be sitting on top of a user maintained database that provides such things as valid contact names, site information, product information, release compatibility, release schedules, inventory control, technical notes and online manuals. An escalation system should exist that is based on task urgency, potential client exposure, allocated priority, and completion time blow outs. The escalation mechanism should be such that it automatically raises the priority allocation, warns the support team, and delivers the appropriate messaging to the support supervisor. The system should allow the creation of </span><i><span class="Apple-style-span" style="font-family:arial;">ad hoc </span></i><span class="Apple-style-span" style="font-family:arial;">query and reporting facilities by the user. This is opposed to reports that are run periodically. Periodic report should provide both the user and the client base with various statistical, and managerial information. This should include outstanding open queries, queries of a certain type, queries logged within a period of time, query history and other charge information. Tasks should be allocated to individuals and or groups, with the guarantee that all unresolved tasks have a single owner. The owner may change during the resolution cycle, but it must always have an owner. When tasks are reallocated, the person receiving the task should be made aware via a formal and agreed mechanism.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">A facility should exist to reopen closed calls, or alternatively, clone previous calls for subsequent alteration. This allows the support consultant to quickly log calls based on previous facts.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The system should allocate unique task reference numbers that can be used by both the client and within the EDP group.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">A number of task status codes should be catered for to reflect the position any one task is at. For example, a task may be pending, closed, completed or current.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">Action codes should also be employed along with a more descriptive comment to indicate the sort of work that has, or will take place for any particular query. For example, the support team may indicate that the query has been transferred to development, the development team may indicate that they are testing </span><i><span class="Apple-style-span" style="font-family:arial;">etc.</span></i></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">A system of query categorising should be catered for such that each query can be placed in a particular class of problem. For example, the query may pertain to network errors, inoperative terminals, application errors, systems errors </span><i><span class="Apple-style-span" style="font-family:arial;">etc. </span></i><span class="Apple-style-span" style="font-family:arial;">This will assist in reconciling the problem areas and thus put in place longer term solutions rather than simply fixing the problem at hand. It should also be said that even the most sophisticated task tracking systems become ineffectual when either the system is not accepted by the users, or when there isn’t enough motivation to use them. The system has to be used by all parties concerned, or none. Once a commitment is made to use such a system, management should ensure that all members comply. Equally, nagging difficulties identified by the users should not be discarded. The biggest problem with getting such systems accepted by users is the obvious fact that it might take a few minutes to resolve a problem, but an equal amount of time to register it. It should be noted that much of the benefits of these systems are long term ones and therefore may not always be appreciated in the short term.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The system should also be used in an on-line manner and queries logged into the system as they are raised.</span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">An off-line system will result in catch up games played at the end of the day in order to register the days queries. This has two main disadvantages. The first is that retrospective entries will be rushed and can be erroneous. The second is the very real possibility that certain requests do not get processed until the task is recorded. This particular problem is especially ominous when the service level agreement promises a few hour turnaround time for very high priority tasks.</span></span></p> <p class="MsoNormal"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;"><b>6. Conclusion</b></span></span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style=" ;font-size:11pt;"><span class="Apple-style-span" style="font-family:arial;">The two most overwhelming factors which go hand in hand when an organization is looking at providing an effective support effort is the introduction of a well thought out service level agreement, and the implementation of a task tracking system. The scope of the service level agreement, and the functionality of the tracking system can evolve over a period of time, however, it is extremely important that a certain amount of initial planning takes place. It is important for example that prospective clients understand, and accept the manner in which support will be delivered. New services and conditions can be amended in time, however, the basic principles of working within an agreed frame work, and providing a measurable standard of service should be a major initial goal. The task tracking system can also start small. The first version may be nothing more than a hand full of shell scripts that allow call recording, searching, and reporting. Once again, the system should be designed such that it can grow with the users needs. It should be a system that the user needs and drives unlike many large systems available these days which force the user to change there working methods.</span><o:p></o:p></span></p><p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span class="Apple-style-span" style="font-family:arial, serif;font-size:130%;"><span class="Apple-style-span" style="font-size:15px;"><br /></span></span></p>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-72585767946489505702010-03-06T03:21:00.000-08:002010-03-26T00:42:02.463-07:00Coherent Unix on a 286<p class="MsoNormal" style="text-align: right;"><span class="Apple-style-span" style="font-family:Arial, serif;"><b><br /></b></span></p> <p class="MsoNormal" style="text-align: right;"><b><span style="font-family:Arial;"><span class="Apple-style-span" style="color:#CC0000;"><span class="Apple-style-span" style="font-size:x-large;">Jack Dikian</span></span></span></b></p> <p class="MsoNormal" style="text-align: right;"><b><span style=" ;font-family:Arial;"><span class="Apple-style-span" style="font-size:large;">ABSTRACT</span></span></b></p> <p class="MsoNormal" style="text-align: right;"><span class="Apple-style-span" style="font-family:Arial, serif;"><span class="Apple-style-span" style="font-size: -webkit-xxx-large;"><span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; font-weight: bold; "><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:x-large;">G</span></span><span style="font-family:Arial;"><span class="Apple-style-span" style="font-size:x-large;">ood Things Still Come In Small Packages</span></span></span></span></span></p><p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">First came Unix Version 7 from AT&T and then, now we have<i> </i>Coherent from Mark Williams Co. Unix was small, simple and cheap. Unix is still small, simple and very, very cheap. This paper takes a close look at the youngest and .smallest kid on the block, and compares it with its older and bigger brothers, as well as its opponents.</span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">This is a review of Coherent Unix. It was a long time ago, almost ten years ago in fact, when John Lions published what was a complete, annotated listing of AT&T’s Version 7 kernel in the form of two booklets that together are no larger than this issue of AUUGN. Those documents, along with the <st1:place st="on"><st1:placetype st="on">University</st1:placetype> of <st1:placename st="on">New South Wales</st1:placename></st1:place>’ "1980 Unix Companion" [UNSW], and "The C Programming Language" [R&K], more than anything else provided us with an extraordinary insight into Unix, the Unix philosophy, and its implementation language. For many, including myself, those documents were in a very real sense invaluable. Those documents, however, also represented something else; they were terse. The size of those notes made it possible to have them on hand virtually everywhere we went.</span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">It is significant, therefore, that Coherent Unix is supplied with a single 1100 page manual that is on one hand very reminiscent of those early works, yet on the other borrows much from the more modem and accessible styles such as that found in Kemighan-Pike "The Unix Programming Environment" [K&P]. The Coherent manual contains all the information that the user needs to install, use and, importantly, learn Unix. The manual covers the traditional Unix sections, namely the supported commands, system calls and subroutines, as well as excellent chapters providing tutorial like presentations. These include system administration, UUCP, awk, the C language, ed, lex, the m4 macro processor, make, Micro EMACS, text formatting, the shell and yacc.</span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">I am placing special emphasis on the quality of the supplied manual for one very important reason; this variant of Unix potentially has a very ready market niche in the way of a low-end Unix training platform. Coherent also comes into its own through its use as a cost effective UUCP node or to provide the DOS user with an alternative vista. "Coherent, A Multi-user, Multi-tasking Operating System For The IBM-PC/AT and Compatible 286 or 386 Based Computers" [Coherent]. This brief product sketch printed on the cover jacket of the manual provides the PC enthusiast with enough flavour of Unix to encourage further curiosity. Coherent Unix comes from the 13-year-old compiler vendor Mark Williams Company, based at <st1:address st="on"><st1:street st="on">60 Revere Drive</st1:street>, <st1:city st="on">Northbrook</st1:city>, <st1:state st="on">Illinois</st1:state> <st1:postalcode st="on">60062</st1:postalcode></st1:address> (uunet!mwc!sales). For US$99.95 you receive a 60-day money back guarantee Unix look-like, and excellent user manual and free technical telephone support.</span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">This system is shipped on four 3.5 inch high density floppy disks and a single copy of the Coherent system manual. A registration card contains a nine digit serial number that the install program prompts for during the installation process. The hardware requirements for this system are very modest when compared with even some DOS applications such as Microsoft Windows. The system requires an IBM AT or clone with 100% compatibility. It does not work on any of the MicroChannel platforms. One high density 3.5" or 5.25" floppy drive, a hard disk with at least 10MB free space, and a minimum of 640K RAM. The manual claims that the system will work with RLL, MFM and most ESDI disk controllers. It should also work with some SCSI host adapters. Coherent includes device drivers for line printers, HP laser printers, COM1 to COM4, RAM disks, tape drives, and the Adaptec SCSI disk controller. ESDI controllers include Ultrascope, Western Digital, and multiport from Amet, Emulex and SEFCO. I suspect, however, that you need to take a close look at exactly what is and isn’t supported. The release notes list more than 100 compatible systems, memory boards and disk controllers. The preparation and installation took me approximately two hours to complete. In theory the actual Coherent install should only take about half an hour, depending on your CPU, but if you, like me, decide to partition the disk between DOS and Unix then you will need to backup your whole disk before you commence the installation. I carried out the installation on a very old 286 clone with 640K and a 40MB disk running DOS 4 with the Gemini EGA 2.4 BIOS. The provided install program drives the user through the installation process from start to finish. It is no more difficult to install Coherent than it is to install any DOS application.</span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">Absolutely no prior knowledge of Unix is required. By far the trickiest section of the installation is when you are asked to re-partition the hard disk. Here you can nominate how much space you wish to allocate to Coherent and DOS, as well as defining the active partition. The operating system mounted on the active partition is booted automatically on start-up. The install program copes very well with the system it is being run on, and tries very hard to prompt you with specific and helpful messages as you go. Once a partition has been allocated to Coherent, the install process bad blocks the nominated partition and makes the file system. You are now ready to reboot the system. The operating system on the active partition boots by default. If you load Coherent on the non-active partition, then you will need to press the number corresponding to the Coherent partition while the system is booting. If Coherent comes up OK, then the remaining three floppies are copied. This step takes a significant part of the overall installation process time.</span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">Uncompressing the man pages and the spell dictionary etc. is slow. Coherent with man pages and dictionary takes up 7MB. This leaves me 13MB of user file space on the Coherent partition, and a further 20MB DOS space. I should mention that the Norton Utilities [Norton] came in very handy at this point because the data remaining on the 20MB DOS partition was almost unusable. It took only minutes for Norton to make sense of the broken directories and help repair them. Coherent Unix comes up multi-user after carrying out a rather slow (3 minutes for 7MB on 286) fsck and prompts for a login with "Coherent login:" At first you get the feeling that you are using a dumb terminal connected to a large AT&T SYS V rel 2 site./bin looks quite comprehensive. But a closer inspection soon tells you why this is the small kid on the block. No POSIX compliancy, X-Windows or NFS. The C compiler is fast, but does not support medium and large models on the 286. Source code is not included, csh is not available, no is off the shelf software. Coherent does, however, fit into 640K of memory (it can address up to 16MB) with the kernel using up a whole 77K. It does give you text formatting facilities through nroff with ms.</span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">The manual also provides a 65 page chapter introducing nroff with very relevant examples. UUCP, as mentioned earlier, is supplied via uuinstall, uucp, uucico, uuxqt, uulog, uuname and uutouch. Once again, the large Remote Communications Utility chapter takes away a lot of the black magic from establishing uucp links. The public domain MicroEMACS is included, as is kermit. The stream editor sed, ed and elvis (vi) are well implemented. I especially found the yacc presentation and program examples quick to implement and easy to learn from. The C compiler, an assembler (for subroutines only), awk and the shell provide a well rounded development suite for training if not for developing real systems. No single platform supporting a dual operating system is complete without a data communication mechanism. Coherent provides a tar like utility called dos which allows the Coherent user to manipulate an MS-DOS file system. It can format or lable an MS-DOS file system, list the files in it, transfer files between it and Coherent or delete files from it. If you wish you can also buy a device driver toolkit for US$39.95. Yes, there are other kids on the block. However Coherent is by far the best dressed for the price. I am going to take a quick look at three other products which Coherent contends with. The first is not really an operating system, but rather a suite of layered utilities called the MKS (Mortice Kern Systems) Toolkit. MKS sits on top of DOS and provides over 100 System V commands including the Korn shell and vi.</span></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">However there are no development tools, and because of its dependence on DOS there is no multi-user/multi-tasking facilities. MKS costs $250.00. The second player is Minix (Mini Unix) from Prentice Hall, which is based on AT&T’s Version 7 and is supplied, with source, on 12 3.5" floppy disks. Minix sits on the host hardware and requires at least a 10MB partition if source is to be included. <span style="mso-spacerun:yes"> </span>Although there is no UUCP support, Minix does feature networking, rcp and Ethernet. The third, SCO (Santa Cruz Operation) XENIX [SCO] is really a heavy weight in features and price when compared Coherent. SCO has a 198K kernel and requires at least 1 to 2MB of memory and 30MB of disk. It costs $1495.00. In conclusion, Coherent Unix from Mark Williams Co. is a truly high performance for value product. It combines the power and flexibility of Unix with the accessibility of PC based technologies. The manual is excellent and it alone is comparable to many speciality books costing many tens of dollars. The training sector is by far the most suitable environment for this product. Not only can this system be used to provide Unix concepts and training, but other areas such as C, shell, systems administration and text formatting can be mastered. The systems also lends itself as an ideal UUCP node. The Mark Williams Company claims it already has 10,000 satisfied users.., make that 10,001.</span></p> <p class="MsoNormal"><b><span style="font-family:Arial;font-size:11.0pt;"><span class="Apple-style-span" style="color:#FFCC33;">References</span></span></b></p> <p class="MsoNormal" style="text-align:justify;mso-layout-grid-align:none; text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">[UNSW]<span style="mso-tab-count:1"> </span><i>Unix Companion, </i>1980, <st1:place st="on"><st1:placetype st="on">University</st1:placetype> of <st1:placename st="on">NSW</st1:placename></st1:place>.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left:72.0pt;text-indent:-72.0pt;mso-layout-grid-align: none;text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">[R&K]<span style="mso-tab-count:1"> </span>Kemighan, B. & Ritchie, D. <i>The C Programming Language. </i>Prentice Hall, 1978.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left:72.0pt;text-indent:-72.0pt;mso-layout-grid-align: none;text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">[K&P]<span style="mso-tab-count:1"> </span>Kernighan, B. & Pike, R. <i>The Unix Programming Environment. </i>Prentice Hall,<i> </i>1984.<i><o:p></o:p></i></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">[Coherent]<span style="mso-tab-count: 1"> </span><i>Coherent Manual, </i>1990, Mark Williams Co.<o:p></o:p></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">[sco]<span style="mso-tab-count: 2"> </span>Tech Specialist Journal, January 1991.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left:72.0pt;text-indent:-72.0pt;mso-layout-grid-align: none;text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">[Norton]<span style="mso-tab-count:1"> </span><i>Norton Utilities, Advanced Edition 4.50,</i> 1987-1988, Peter Norton. Vol 12 No 1 22 </span></p><p class="MsoNormal" style="margin-left:72.0pt;text-indent:-72.0pt;mso-layout-grid-align: none;text-autospace:none"><span style="font-family:Arial;font-size:11.0pt;">AUUGNGN<o:p></o:p></span></p>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com1tag:blogger.com,1999:blog-4516875794785365515.post-71842218856510039292010-03-05T22:30:00.000-08:002010-03-26T02:14:16.814-07:00Scientific Visualization<div style="text-align: right;"><span class="Apple-style-span" style="font-family:arial, serif;"><b><br /></b></span></div><b><div style="text-align: right;"><span class="Apple-style-span" style="font-size:large;"><span class="Apple-style-span" style="font-family:arial;"><br /></span></span></div><span class="Apple-style-span" style="font-size:large;"><div style="text-align: right;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-weight: normal;"><span class="Apple-style-span" style="font-size: x-large;"><span class="Apple-style-span" style="color:#CC0000;">Jack Dikian</span></span></span></span></div><div style="text-align: right;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:large;"><br /></span></span></div><div style="text-align: right;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:large;">ABSTRACT</span></span></div></span></b><br /><div style="text-align: justify;">Scientific visualization is a technique for representing raw numerical data in visual images that model the interactions of objects and forces in the real system from which the data originally came. One of the main purposes of scientific visualization is to aid scientists in understanding vast amounts of data generated by computers and other equipment. These images can be manipulated on screen as if they were actual physical systems. </div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">An image can show on the screen, in a few minutes, the effect of a new or changed variable on a system. To analyse the same effect from several thousand numbers covering reams of computer paper takes considerably longer, and lacks the completeness and immediacy of the visual model. Scientific visualization, however, also requires the use of very specialized software and in some cases the collaboration of specialist computer engineers. Many large workstation vendors such as Silicon Graphics Inc, Stardent Computer Inc and IBM are now making available, genetic interactive visualization environments that give users access to graphics, visualization and imaging modules without the associated programming effort. </div><br /><div style="text-align: justify;">This paper takes a look at the Silicon Graphics solution, an application development environment for end-users and software developers called IRIS Explorer.</div><span class="Apple-style-span" style="font-size:medium;"><br /></span><b><span class="Apple-style-span" style="font-size: large;">1</span><span class="Apple-style-span" style="font-size:medium;">. INTRODUCTION</span></b><br /><br /><div style="text-align: justify;">Visual processing gives us the ability to produce realistic, three-dimensional, colour images and interact with them in real-time; just as we might manipulate an object held in our hand. We can absorb information and explore ideas in ways previously thought impossible. Visual processing has already transformed the way we work and interact with information. Future developments promise to make information analysis and synthesis even more intuitive and immediate.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Once a visual representation is generated; a bone fragment for example. An anthropologist working in the field can photograph the bone, scan the image, reconstruct a virtual model and begin to test. Stardent Computer Inc announced it would form a new corporation, AVS Inc. The new company, comprised of 25 former Stardent employees will operate as a separate entity. Hypotheses, extrapolate an effect over a period of time, apply new conditions or variables, or invent a new system all together. Today, scientific visualization is heavily used in astrophysics, meteorology, mathematics, molecular modelling, particle research, and medical imaging amongst many others. Transforming data from the initial raw form to a display point, however, requires significant processing. Images are processed by the use of a number of operations including, correction and reduction of noise and distortion, polynomial wrapping, contrast enhancement by light-source shading, use of colour to show contours or group data in a given range.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Scientists in many of the fields mentioned above often do not wish to take on the difficult task of coding these operations. Also, many scientists use commercial software packages and wish to extend the systems with their own algorithms and techniques. Up to now, specialist scientists have relied on the services of computing professionals, and/or the use of purpose built commercial packages to facilitate the generation of computer models. There is a growing need therefore for systems that provide rich visualization development environments designed to be used by both programmers and non-programmers alike. </div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Systems such as Stardent Computer Inc’s AVS3 (Application Visualiser System), IBM’s newly announced Visualization Data Explorer/6000 and Silicon Graphics Inc’s IRIS Explorer are here to fill that gap. Both the Stardent and the Silicon Graphics systems are quickly becoming industry standard environments. IRIS Explorer. The IRIS Explorer which is bundled with the: latest release of the Silicon Graphics IRIX operating system is a scientific visualization package that lets you read, analyse, manipulate, and render complex data sets without the need for programming. Each step of the data input and output, analysis, and rendering is performed by a module that you place into a "network". The network is configurable on the fly using a simple point and click interface. A connect-the-modules approach invites users to integrate data and applications by visually connecting software modules into flow-chart maps or networks.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><span class="Apple-style-span" style="font-size:large;">2. Main</span></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">The strength of the system, besides its ease of use, X-window and Motif compliance, lies in its rich set of supplied modules. An Explorer module performs a specific action on the data that passes through it. Each module accepts data, acts on it in some way, and outputs the result to the next module downstream. Explorer modules are in essence made up of two parts. The first is the visible portion or control panel that contains the input/output ports as well as parameters, the values of which can be set and altered by widgets. The internal portion of a module contains the actual computational algorithm (C, C++, Fortran) and the module wrapper or module interface. Modules may be turned off, or disabled; and can be "fired" (executed) on a machine other than the one where the network is running. </div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">A large number of modules provide a wide variety of functions including file I/O, data analysis and off course visualization. Modules such as "BlendImg" which computes a blended image, "Blurlmg" to blur an image, "Contour", "Forward FFTthng", "Fourier Cross Corrlmg", "Renderer" and many (over 150) others are held in what Explorer calls the Module Librarian. The non-programmer can develop a specific visualization environment in order to analyse, and render his or her data by wiring together these pre-defined modules. North Carolina Supercomputing Center officially become the international AVS Centre. This centre will gather, standardize, catalogue and maintain a collection of AVS modules currently available, along with modules created by users for the public domain. A programmer can modify, or add to the library of modules by writing C, C++, or Fortran code using Explorer’s Module Builder. </div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">The Explorer network is created by the Explorer Map Editor. The map editor is the work area in which modules are assembled and organized into an operational network. The whole thing is really very much like designing an application flow chart graphically, but with the one very large difference in that you can place real data at one end, and real results will appear at the other. The map editor allows the user to create, open, edit, save, and delete networks, create, disable, enable and destroy modules, run the network, and incorporate the network into an application. When one draws a flow chart of an application, however, one would normally depict the flow of control rather than the flow of data. To say that developing applications in Explorer is as easy as drawing flow charts, therefore, needs further explanation. When drawing flow charts, we sometimes include process blocks or modules that have the task of converting data from one module to the next. In general however, flow charts do not describe data conversion, and an assumption is made that data conversion will be handled in the physical model viz the development phase.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Explorer networks on the other hand are alive, and there is no such thing as a distinct development phase. IRIS Explorer is a strongly typed system. Two modules can only be connected if they share the same data types. The IRIS Explorer Module Builder helps the user define the external attributes of a module such as which data types the module will accept on its input port and the data produced on its output port. The Module Builder can also generate the code needed to interface from the outermost layer of the module (the visible portion), to the computational function, where the module’s algorithm resides. The need for data typing arises in several stages of development and execution. For example, when trying to wire two modules together, the map editor ensures that the two ports have compatible data types. Also, when a data object crosses a machine boundary, some component of the system needs to know the details of its internal structure so that the correct data representation conversion can be performed. IRIS Explorer has five major data types which are aggregates of other more primitive types such as Ints, strings, floats etc. The five main types are:- </div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><ul><li>Lattice,</li><li>Parameter,</li><li>Pyramid,</li><li>Geometry, and</li><li>Unknown.</li></ul></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">This data abstraction allows any one of the above data types to represent an entire class of data, on one hand, and a specific instantiation, on the other. For example, in its most general form, the lattice (essentially a multi-dimensional array) data type can represent any multidimensional array, whether byte structured, floating point, integer, short, or double precision. A specific instance, however, can represent only a two-dimensional lattice in 16-bit byte format.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Two major Explorer utilities are intimately tied to the above data types. These are the Explorer Module Builder, and Data Scribe, the data conversion utility. The Explorer Module Builder is a graphical user interface tool that lets the user modify existing modules, and build new ones. The module builder automates the module building process so that the typical module requires no programming beyond that needed to write the computational function. The supplied port and parameter information is used by the module builder to automatically generate code, in the form of the Module Data Wrapper, to provide an interface between the outermost layer of the module, to the computational function. </div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">The data wrapper decomposes Explorer’s data structures into a form usable by the user written function. For example, it can be arranged such that there is a relationship between the calling sequence of the computational functions, the function arguments and the port data types. IRIS Explorer also comes complete with a data converter (Data Scribe) which allows explorer to read a multitude of new data-set file formats. Data Scribe can be used to convert data from an external source, such as an application or disk file, into explorer data types. It can also be used to convert explorer data types into data that can be used by other applications. Internal data conversion also helps make this system suitable in a heterogeneous environment. Any number of modules can be setup such that they execute on remote hosts, including the Cray. </div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Data between these machines is transferred seamlessly. The distributed execution architecture allows a scientist working in computational fluid dynamics for example, run his mesh generation and post processing on an IRIS workstation while running his solver on a Cray. As a very simple example of how you might use Explorer, let’s say you have an image file created by saving a part of the screen. You may wish to enhance the contrast of the image, before displaying it again. A traditional method may be to write an application that reads the image file, applies a histogram equalization technique which rescales the data values of the image such that the cumulative histogram of the output image is approximately linear, before writing more code to display the image in the correct aspect and size. As simple as this application may seem, a large amount of knowledge is assumed. This includes the format of the image file, contrast enhancing methods, the availability of underlying graphics libraries, as well as a working knowledge of some programming language. To perform this using Explorer takes just a few minutes. The steps are:</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Retrieve the Read Image module, the Histogram Equalization module, and the Display Image module from the Explorer library. Place these into the Explorer Map Editor. Wire the output of the Read module into the input of the Histogram Equalization Module. Wire the output of the Histogram Equalization module into the input of the Display Image module.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Now you have created an Explorer network. To run this network, all that is left to do is use the widget based input parameter in the Read Image module to nominate the name of the image file you wish to read. The Display Image module also provides extra functionality. For example, it allows the user to pan around the image by using the mouse, as well as providing a zoom dial. This is a very simple Explorer network. There is no limit to the number and ways modules can be wired together.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;"><b>3. Conclusion</b></div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">IRIS Explorer is therefore a complete application creation system and user environment that provides visualization and analysis features for computational scientists and engineers. It is useful for those whose needs are not met by commercial software packages, and or, those who wish to extend existing systems with their own functions. IRIS Explorer runs across the entire Silicon Graphics product range. This product gives us a whole new paradigm for using machines in a heterogeneous environment. Modules within a map can be executed on connected machines. Modules and maps are available to cover functions as diverse as computational fluid dynamics, Earth Sciences, Molecular Modelling, and Medical imaging. </div><br />References:<br /><br />1. Newman & Sproull Principles of Interactive Computer Graphics McGraw-Hill, Second Edition. 1979Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0tag:blogger.com,1999:blog-4516875794785365515.post-22207733220539386322010-03-05T02:41:00.000-08:002010-03-26T01:25:38.597-07:00Grammatical Extensions to the Structured Query Language SQL<div style="text-align: right;"><br /></div><div style="text-align: right;"><span class="Apple-style-span" style="font-size:large;"><br /></span></div><div style="text-align: right;"><span class="Apple-style-span" style="color:#CC0000;"><span class="Apple-style-span" style="font-size:x-large;"><b>Jack Dikian</b></span></span></div><div style="text-align: right;"><span class="Apple-style-span" style="font-size:large;"><br /></span></div><div style="text-align: right;"><span class="Apple-style-span" style="font-size:large;"><span class="Apple-style-span" style="color:#CC9933;">ABSTRACT</span></span></div><br /><div style="text-align: justify;">The SQL+sh is an interactive front-end to Unify’s Structured Query Language (SQL). It’s main purpose is to add Csh/tenex like functionality to a vanilla query interpreter in the way of SQL. </div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">A query history stack, ability to recall and edit previous queries as well as an interactive RECORD and FIELD name recognition and completion mechanism are a sample of the sort of enhancements SQL+sh supports. This paper presents a brief background to SQL before discussing some of the features we added to this package. Working in an environment where a significant portion of a programmer’s time is spent writing and maintaining applications software around the Unify Relational Database; any facility that simplifies database interactions must be an advantage. This database is quickly approaching the 2 G-byte mark with over 300 Mb of supporting software. Like other large database users, the overhead of database related maintenance is a significant consideration. Improvements in database related utilities greatly increases productivity as well as reliability.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">One of the most powerful facilities available to the maintenance programmer in our environment is Unify’s Structured Query Language SQL. This utility is often used to interrogate as well as patch the underlying database. Adhoc SQL queries are often generated to confirm the correctness of application modules as well as serving the more simple day to day user information requirements.</div><br /><br />A Quick Look At SQL<br /><br /><div style="text-align: justify;">SQL is an english keyword orientated query language of great flexibility. It is a language that is easy enough for non-programmers to learn, yet has enough power for data processing professionals. This product was originally defined by Chamberlin and others at the IBM Research Laboratory in San Jose, California, under the brand name System R. A family of IBM products based on the System R technology was developed. These products are now generally available and are known as DB2, SQL/DS and QMF [1]. </div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">A number of other vendors have also produced systems that support SQL. SQL’s data manipulation statements typically operate on entire sets of records. For example, the select and update clauses can retrieve and modify a set of values and tables. SQL, like all relational data manipulation languages is a set-level language. For this reason, SQL is often described as a non-procedural language. The user specifies "what" data they want and not so much "how" to get it. </div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">It is up to SQL to decide on how best to execute any particular query. It needs for example to consider which tables are being referenced in any request; the size of the tables; what indexes exits; how selective those indexes are and of course, the form of the where clause. SQL queries consist of clauses, each of which is preceded by a keyword. Examples of keywords include; select, update, delete and insert. In fact, the previous four keywords all belong to that part of SQL which is commonly referred to as the DML or Data Manipulation Language. Other optional keywords are used to control, format and operate on the various queries. Some simple examples of queries are given below:-</div><br />> <span class="Apple-style-span" style="color:#FFCC33;"><b>select Name, Phone</b></span><br />> <span class="Apple-style-span" style="color:#FFCC33;"><b>from PERSONS</b></span><br />> <span class="Apple-style-span" style="color:#FFCC00;"><b>where Age > 30/</b></span><br /><br /><div style="text-align: justify;">The above example illustrates the selecting or retrieving of the specified fields Name and Phone from a specified table PERSON where some specified condition is true. It is important to note that the result of the query is another table.</div><br />> <b><span class="Apple-style-span" style="color:#FFCC33;">select PERSON.*, COMPANY.*</span></b><br />><b> <span class="Apple-style-span" style="color:#FFCC66;">from PERSON, COMPANY</span></b><br />> <span class="Apple-style-span" style="color:#FFCC33;">where PERSON.PName = COMPANY.CName/</span><br /><br /><div style="text-align: justify;">This example demonstrates the retrieving of data from two tables namely <span class="Apple-style-span" style="color:#FFCC66;">PERSON</span> and <span class="Apple-style-span" style="color:#FFCC66;">COMPANY</span>. We are interested in all instances of the field <span class="Apple-style-span" style="color:#FFCC66;">PName</span> in <span class="Apple-style-span" style="color:#FFCC66;">PERSON </span>matching the field <span class="Apple-style-span" style="color:#FFCC66;">CName</span> in the table <span class="Apple-style-span" style="color:#FFCC66;">COMPANY</span>. This is commonly referred to as "Joining" two or more tables. The availability of the join operation is, almost more than anything else that distinguishes relational from non-relational systems.</div><br /><br />The SQL+sh<br /><br /><div style="text-align: justify;">Our main database currently supports over a 100 tables and close to a 1000 fields. Using SQL to interrogate and manipulate data in this environment almost always requires the programmer to first browse through the Database schema listing. This is not only due to the large number of different tables and fields but is also due to UNIFY’s record and field naming conventions. The maximum length of a record name is eight characters. It is therefore impossible to create two records with the names "<span class="Apple-style-span" style="color:#FFCC66;">PROGRAMMER</span>" and "<span class="Apple-style-span" style="color:#FFCC66;">PROGRAMME</span>". A compromise may lead to the names "<span class="Apple-style-span" style="color:#FFCC66;">PROGMR</span>" and "<span class="Apple-style-span" style="color:#FFCC66;">PROGME</span>" etc. It is easy to see why the schema listing may be required in such cases. Creating tables in Unify requires the user to nominate both a short and a long field name. Short field names must begin with a letter and can be up to eight characters long. The long field names begin with a letter and can be up to sixteen characters long. It is the long name that SQL requires for carrying out queries. </div><br /><div style="text-align: justify;">The schema is used to determine or look up this long name. The schema is also used to determine relationships between tables and their corresponding fields. Editing large queries are handled by - SQL writing the last query in/tmp. The edit facility invokes a standard editor such as vi with the last query loaded in the editor buffer. The user modifies and saves the changes before using the restart clause to re-execute the query. Although this facility is useful, it is however often tedious. This is especially true when a simple typo needs to be repaired. Because only the last query is effectively saved, access to previous queries are lost unless the user explicitly saves the editor buffer to a nominated file. Interestingly, we required in SQL a similar transformation in functionality as that provided by say csh and tcsh over the bourne shell. Where tcsh provides file name recognition and completion, we required record and field name recognition and completion. </div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Where csh provides a history and edit facility for commands, we required, a history and edit mechanism for queries. In implementing some of the ideas found in csh and tcsh, we were able to address both the above mentioned short-commings as well as provide a much more effective user interface. Not having access to SQL source, the only other alternative in implementing the above changes was to write our own parser sitting on top of SQL. This would simply read the input stream, decide if it needs to act upon, and manipulate the history stack, carry through edit commands, expand alias’ etc and then write to SQL via a pipe. The output of SQL is not and should not be altered.</div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">SQL+sh reads a schema description file on startup. This file is typically generated by the systems administrator by running a specially written shell script. The description file describes the database tables, there respective fields and other information such as field type and length. The shell script uses SQL to dump the relevant table, field types and names. On startup, SQL+sh looks at the environment variable <span class="Apple-style-span" style="color:#FFCC66;">DBPATH</span> and displays the the name and address of the working database. After this point, SQL+sh enters a for-ever loop waiting for queries, internal commands and or the end clause. A new prompt including the event number is displayed. An environment variable defines the maximum history size. An internal command has been added called "<span class="Apple-style-span" style="color:#FFCC66;">Mod On/Off</span>" which enables and disables the availability of non-passive SQL clauses. For example, after entering the command "<span class="Apple-style-span" style="color:#FFCC33;">Mod Off</span>", such clauses as delete, update, insert are disabled or ignored. This is useful in cases where support staff use SQL to answer quick telephone queries and should not update the database inadvertently. Unlike Unix commands which are newline terminated, SQL queries often span over many lines. In fact, users of SQL are encouraged to use good formatting procedures when making SQL queries. This is in part due to the fact that quite complex SQL scripts can be written and saved for regular use. These scripts are also used to feed data to Unify’s report generator RPT. The "<span class="Apple-style-span" style="color:#FFCC33;">/</span>" character is used to indicate the end of a query. For this reason, SQL+sh supports a modified history substitution command in the way of "!<span class="Apple-style-span" style="color:#FFCC00;">event+</span>". This signals SQL+sh to re-execute the query beginning with the event number "event" and continue to re-execute events forward in the stack until a "<span class="Apple-style-span" style="color:#FFCC66;">/</span>" character is encountered. All other normal history substitution commands such as "<span class="Apple-style-span" style="color:#FFCC66;">!!</span>", "<span class="Apple-style-span" style="color:#FFCC66;">!- number</span>", "<span class="Apple-style-span" style="color:#FFCC66;">!number</span>" as well as "!pattern" etc have been implemented. Where a query spans many lines, SQL+sh collects together the individual clauses to echo a single event in its history stack.</div><br /><div style="text-align: justify;">Editing previous queries are handled two ways. The standard SQL procedure is to invoke the system editor with the last query loaded into the editor buffer. The edit clause facilitates this procedure. This method is still available and is usually used for editing large query texts. This method allows only the last query to be modified and executed. SQL+sh introduces the csh like "<span class="Apple-style-span" style="color:#FFCC66;">!event s/patternl/patternl</span>" and ^<span class="Apple-style-span" style="color:#FFCC66;">patternl</span>^<span class="Apple-style-span" style="color:#FFCC66;">pattern2</span>^ mechanisms. These are extremely convenient for repairing typos and or for substituting record or field names while leaving the general structure of the query untouched. </div><div style="text-align: justify;"><br /></div><div style="text-align: justify;">One of the most useful additions to SQL was the introduction of record and field name recognition and completion. The idea here was to provide a convenient way to avoid having to look up the record and field names before generating queries. Automatically displaying field types and length was considered useful. Other considerations included providing a means by which key strokes could be reduced and accurately associating relevant field names to their correct parent tables. This mechanism is used in conjunction with the database schema description file. It is no longer necessary to type a complete record or field name. Only a unique abbreviation is necessary. Typing the <span class="Apple-style-span" style="color:#FFCC66;">ESCAPE</span> key after the abbreviation will complete the record or field name, echoing the full name. Unlike tcsh, where there is really only one type of file name completion, SQL+sh needs to consider context and determine whether a record, or field name is being sought. This is achieved by adding some of the SQL syntax rules into SQL+sh. </div><br />For example the following grammar extracts the syntax for the insert and select clauses:-<br /><br /><b><span class="Apple-style-span" style="color:#FFCC33;">insert into RECORD [(FIELD .... )]:<br />from filenamel</span></b><constant><b><span class="Apple-style-span" style="color:#FFCC33;">l select/ select ["unique"] I * I RECORD.* I RECORD.FIELD I FIELD ....I * I RECORD.* I RECORD.FIELD I FIELD ....<br />from I RECORD [label] I .... where ["not"] I FIELD I RECORD.FIELD I constant ETC.</span></b><br /><br /><div style="text-align: justify;">SQL+sh tries to carry out a search of either the appropriate record or field based on the position the ESCAPE key was pressed in the input stream. It is obvious from the above two syntax examples that it is not often possible to determine whether a RECORD or a FIELD needs expanding. In the select clause for example, it is possible to say "<span class="Apple-style-span" style="color:#FFCC33;">select record.field from ...</span>" or " select field from...". Hitting the <span class="Apple-style-span" style="color:#FFCC66;">ESCAPE </span>key just after the select token leaves SQL+sh with a choice of searching for appropriate records or fields. In fact, in this particular example, the system will first search through the record list and then the field list. In general, as each word is read, SQL+sh updates a flag indicating whether it is in a "<span class="Apple-style-span" style="color:#FFCC66;">RECORD</span>" or "<span class="Apple-style-span" style="color:#FFCC66;">FIELD</span>" state. This flag is initially set to a "<span class="Apple-style-span" style="color:#FFCC66;">NULL</span>" state thus causing an alert when the ESCAPE key is pressed. A "<span class="Apple-style-span" style="color:#FFCC66;">BOTH</span>" state causes SQL+sh to search records and then fields. This state is established by tracking entered words against various syntax rules defined in SQL+sh. We have also provided a means of commenting query text. Text found enclosed within the "<span class="Apple-style-span" style="color:#FFCC66;">{</span>" and "<span class="Apple-style-span" style="color:#FFCC66;">}</span>" braces are ignored. This facility was implemented in order to allow a clean method of displaying field types and length in-line. On Hitting ESCAPE in a "<span class="Apple-style-span" style="color:#FFCC66;">FIELD</span>" state, the system will not only display a candidate field name but also place the relevant field type and length already commented.</div><br /><div style="text-align: justify;">Besides providing a recognition and completion mechanism, SQL+sh also provides a facility where fields belonging to a particular record can be scanned. For example, after having typed in the sub-clause </div><br /><b><span class="Apple-style-span" style="color:#FFCC66;">select * from<br />PERSON where " it is possible to Hit Ctrl-f to echo the first field belonging to the PERSON record.</span></b><br /><br /><div style="text-align: justify;">Hitting Ctrl-f again will replace the first displayed field name with the next field. When the list of fields are exhausted, the process is repeated. This allows the user to carry out a query on a record even when they had no idea of the field names associated with the given record. The field type and length is once again displayed in comments. Some examples follow:-</div><br /><b><span class="Apple-style-span" style="color:#FFCC66;">select * from PE</span></b><esc><b><span class="Apple-style-span" style="color:#FFCC66;">"<br />select * from PERSON</span></b></esc></constant><div><constant><esc><span class="Apple-style-span" style="color:#FFCC66;"><b><br /></b></span>results in the cursor sits at the next column position waiting for the rest of the query.<br /><br /><span class="Apple-style-span" style="color:#FFCC33;">select * from PERSON where </span><ctrl-f><span class="Apple-style-span" style="color:#FFCC33;"><br />results in<br />select * from PERSON where PName {STRING 12}<br />Hitting </span><ctrl-f><span class="Apple-style-span" style="color:#FFCC33;"> again results in<br />select * from PERSON where Paddress {STRING 45}</span><br /><br />The user can now enter the rest of the query<br /><br /><b><span class="Apple-style-span" style="color:#FFCC33;">select * from PERSON where Paddress {STRING 45} = ’Bag End*’ </span></b><br />Hitting <ctrl-f> here results again<br /><span class="Apple-style-span" style="color:#FFCC66;"><b>PAge {NUMERIC 3 }<br />PAge {NUMERIC 3} <= 111/ </b></span><div style="text-align: justify;"><br /></div><div style="text-align: justify;">Now we can enter the rest of query Often there is the need to carry out repetitive queries involving tests against large text constants such as "<span class="Apple-style-span" style="color:#FFCC66;">0 081 12346789050</span>" and "<span class="Apple-style-span" style="color:#FFCC66;">Speak Friend And Enter</span>". An ability to implement a concept of macros was also considered a useful enhancement. The same query is often re-executed many times over in the event of a Database maintenance session. One or more parameters in the query may however vary. An ability to expand VMS like "Logical Variables" was added to SQL+sh. The same variable setting and expansion mechanism is used to set and unset simple and complex variables. There is no inherent differences between variable substitution and macro processing. The difference is operational. SQL+sh maintains a set of variables each of which has as a value a list of zero or more words. Each word in this list could be a simple constant or another variable. This value may be displayed and changed by using the internal commands show and clear. After the input line is parsed, and before each query is executed, variable substitution is performed. Variables are keyed by ’<span class="Apple-style-span" style="color:#FFCC66;">$’</span> character. The expansion can be prevented by preceding the ’<span class="Apple-style-span" style="color:#FFCC33;">$</span>’ with a ’V except within ’"s. A Macro with a single argument can be seen as a variable containing another variable in its assignment string. The second variable has to be resolved before the macro can be executed. Newline characters found in the assignment list are ignored. Looping is prevented by checking that the same variable does not appear in the assignment list of that variable. </div><div style="text-align: justify;"><br /></div>Examples of variables follow:-<br /><br />[1] <b><span class="Apple-style-span" style="color:#FFCC66;">$new_name = "Bilbo Baggins"</span></b><br />[2] <span class="Apple-style-span" style="color:#FFCC66;">$my_update = " update PERSON</span><br />[3] <span class="Apple-style-span" style="color:#FFCC66;">s</span></ctrl-f><ctrl-f><span class="Apple-style-span" style="color:#FFCC66;">et PName = Snew_name</span><br />[4] <b><span class="Apple-style-span" style="color:#FFCC66;">where PName = ’ *’/"</span></b><br />[5] <span class="Apple-style-span" style="color:#FFCC66;">Smy_update</span><br /><br /><br /><div style="text-align: justify;">We have been using this utility on a trial basis for the last few weeks. In general, the added convenience of query recall and edit far exceeds the cost of overhead. The ability to echo the field length and type results in much less references made to the schema listing. Record and field name completion means less typos in general. </div><br /><b><span class="Apple-style-span" style="color:#FFCC66;">References</span></b><br /><br /><div style="text-align: justify;">[1] C.J. Date, "An Introduction To Database Systems", Addison-Wesley 1986.e, Australia; 13th- 15th September 1988.</div></ctrl-f></ctrl-f></ctrl-f></esc></constant></div>Jack Dikian onlinehttp://www.blogger.com/profile/04457981192945424948noreply@blogger.com0