<?xml version="1.0" encoding="UTF-8" standalone="yes"?><oembed><version><![CDATA[1.0]]></version><provider_name><![CDATA[The Osmosian Order of Plain English Programmers Welcomes You]]></provider_name><provider_url><![CDATA[http://osmosianplainenglishprogramming.blog]]></provider_url><author_name><![CDATA[gerryrzeppa]]></author_name><author_url><![CDATA[https://osmosianplainenglishprogramming.blog/author/gerryrzeppa/]]></author_url><title><![CDATA[Musings on the &#8220;A&#8221; in &#8220;AI&#8221;]]></title><type><![CDATA[link]]></type><html><![CDATA[<header class="entry-header">
<h1 class="entry-title"></h1>
</header>
<div class="entry-content">
<p>A while back I wrote a program that could draw simple landscapes.</p>
<p><strong>Version 1</strong></p>
<p>The first version was entirely deterministic: I knew exactly what shape the horizon would take, where the sun would appear, how many birds would adorn the sky, etc. It produced acceptable drawings, but was too predictable to be interesting. Just a machine.</p>
<p><strong>Version 2</strong></p>
<p>The next version was entirely random in its workings: I let the program decide what to draw and where to draw it, and really had no idea what it would produce. Almost every drawing it rendered was tasteless nonsense. Fast and prolific, but no artist. A <em>broken </em>machine.</p>
<p><strong>Version 3: Vincent</strong></p>
<p>The third version was a combination of the two — deterministic enough to stay within reasonable bounds (horizon somewhere near the middle of the page, no more than three birds at time) yet free enough to produce original works that I could not predict, even though I wrote every line of the code. Most of the time this version performs reasonably well, and now and then it draws something so striking that I print it off and hang it on the wall. I call this third version, Vincent.</p>
<p>Here is a sample of Vincent’s work:</p>
<p><img loading="lazy" class="alignnone size-full wp-image-316039" src="https://cdncontribute.geeksforgeeks.org/wp-content/uploads/vincent-drawing-1.jpg" alt="" width="432" height="289" /></p>
<p><strong>Inside Vincent’s Head</strong></p>
<p>Here are some of the Plain English sentences that constitute Vincent’s soul. First, some type definitions:</p>
<p><span style="color:#00ccff;">A landscape is a thing with an horizon, a sun, and some birds.</span></p>
<p><span style="color:#00ccff;">An horizon is a polygon.</span><br />
<span style="color:#00ccff;"> A sun is a polygon.</span><br />
<span style="color:#00ccff;"> A bird is a polygon.</span></p>
<p>Then a global variable so Vincent can remember what he’s drawn:</p>
<p><span style="color:#00ccff;">The drawings are some landscapes.</span></p>
<p>And now, his primary talent:</p>
<p><span style="color:#00ccff;">To draw a landscape:</span><br />
<span style="color:#00ccff;"> If you&#8217;re tired, say &#8220;I&#8217;d rather not, I&#8217;m tired&#8221;; exit.</span><br />
<span style="color:#00ccff;"> Say &#8220;Okay&#8221;.</span><br />
<span style="color:#00ccff;"> Imagine the landscape.</span><br />
<span style="color:#00ccff;"> Render the landscape.</span><br />
<span style="color:#00ccff;"> Remember the landscape.</span></p>
<p>The “imagining” phase, as any human artist knows, is the critical part. This is how I taught Vincent to imagine a landscape:</p>
<p><span style="color:#00ccff;">To imagine a landscape:</span><br />
<span style="color:#00ccff;"> Allocate memory for the landscape.</span><br />
<span style="color:#00ccff;"> Imagine an horizon in the landscape.</span><br />
<span style="color:#00ccff;"> Imagine a sun in the landscape.</span><br />
<span style="color:#00ccff;"> Imagine some birds in the landscape.</span></p>
<p>The horizon comes first:</p>
<p><span style="color:#00ccff;">To imagine an horizon in a landscape:</span><br />
<span style="color:#00ccff;"> Allocate memory for the landscape&#8217;s horizon.</span><br />
<span style="color:#00ccff;"> Put the screen&#8217;s left-center into a spot.</span><br />
<span style="color:#00ccff;"> Move the spot 1 inch up or down.</span><br />
<span style="color:#00ccff;"> Add the spot to the landscape&#8217;s horizon.</span><br />
<span style="color:#00ccff;"> Loop.</span><br />
<span style="color:#00ccff;"> Move the spot 1/2 inch to the right and 1/4 inch or so up or down.</span><br />
<span style="color:#00ccff;"> Add the spot to the landscape&#8217;s horizon.</span><br />
<span style="color:#00ccff;"> If the spot is not on the screen, break.</span><br />
<span style="color:#00ccff;"> Repeat.</span><br />
<span style="color:#00ccff;"> Smooth the landscape&#8217;s horizon 2 times.</span></p>
<p>Here comes the sun:</p>
<p><span style="color:#00ccff;">To imagine a sun in a landscape:</span><br />
<span style="color:#00ccff;"> Allocate memory for the landscape&#8217;s sun.</span><br />
<span style="color:#00ccff;"> Start with &#8220;A1 A9 I9 I1 A1&#8221; for the landscape&#8217;s sun.</span><br />
<span style="color:#00ccff;"> Smooth the landscape&#8217;s sun 3 times.</span><br />
<span style="color:#00ccff;"> Pick a spot anywhere above the landscape&#8217;s horizon.</span><br />
<span style="color:#00ccff;"> Scale the landscape&#8217;s sun given the spot and the landscape&#8217;s horizon.</span><br />
<span style="color:#00ccff;"> Center the landscape&#8217;s sun on the spot.</span></p>
<p>The sun is actually just a square rounded off. The scaling makes it smaller the further it is from the horizon:</p>
<p><span style="color:#00ccff;">To scale a sun given a spot and an horizon:</span><br />
<span style="color:#00ccff;"> Put 1 inch plus the spot&#8217;s y into a ratio&#8217;s numerator.</span><br />
<span style="color:#00ccff;"> Put the horizon&#8217;s top into the ratio&#8217;s denominator.</span><br />
<span style="color:#00ccff;"> Reduce the ratio.</span><br />
<span style="color:#00ccff;"> Scale the sun to the ratio.</span></p>
<p>And last of all, the birds:</p>
<p><span style="color:#00ccff;">To imagine some birds in a landscape:</span><br />
<span style="color:#00ccff;"> Pick a number between 1 and 3.</span><br />
<span style="color:#00ccff;"> Say &#8220;I&#8217;ve decided to draw &#8221; then the number then &#8221; birds this time&#8221; and wait.</span><br />
<span style="color:#00ccff;"> Loop.</span><br />
<span style="color:#00ccff;"> If the number is 0, exit.</span><br />
<span style="color:#00ccff;"> Imagine a bird in the landscape.</span><br />
<span style="color:#00ccff;"> Add the bird to the landscape&#8217;s birds.</span><br />
<span style="color:#00ccff;"> Subtract 1 from the number.</span><br />
<span style="color:#00ccff;"> Repeat.</span></p>
<p><span style="color:#00ccff;">To imagine a bird in a landscape:</span><br />
<span style="color:#00ccff;"> Allocate memory for the bird.</span><br />
<span style="color:#00ccff;"> Start with &#8220;E1 D3 G5 E7 G9&#8221; for the bird.</span><br />
<span style="color:#00ccff;"> If you feel like it, flip the bird left to right.</span><br />
<span style="color:#00ccff;"> Randomly scale the bird between 10 and 25 percent.</span><br />
<span style="color:#00ccff;"> Smooth the bird.</span><br />
<span style="color:#00ccff;"> Pick a spot for the bird in the landscape.</span><br />
<span style="color:#00ccff;"> Center the bird on the spot.</span></p>
<p>Once Vincent has a landscape “in mind,” so to speak, the rendering of it is easy:</p>
<p><span style="color:#00ccff;">To render a landscape:</span><br />
<span style="color:#00ccff;"> If the landscape is nil, exit.</span><br />
<span style="color:#00ccff;"> Fill the screen with the tan color.</span><br />
<span style="color:#00ccff;"> Render the landscape&#8217;s horizon with the black color.</span><br />
<span style="color:#00ccff;"> Put masking tape below the landscape&#8217;s horizon.</span><br />
<span style="color:#00ccff;"> Render the landscape&#8217;s sun with the black color.</span><br />
<span style="color:#00ccff;"> Render the landscape&#8217;s birds with the black color.</span><br />
<span style="color:#00ccff;"> Take the masking tape off.</span></p>
<p>The “masking tape” is used to make sure the sun appears <em>behind </em>the horizon.</p>
<p>Committing a landscape to memory is a trivial thing for Vincent:</p>
<p>To remember a landscape:<br />
Append the landscape to the drawings.</p>
<p><strong>The Musings</strong></p>
<p>Playing with Vincent tends to make me philosophical about things like will, memory, consciousness, emotions and understanding. My thoughts generally run along these lines:</p>
<p>• Vincent makes decisions on his own. What the horizon will look like, where the sun will be placed, and how many birds will appear are unknown until he decides. Does he have a <em>will </em>of his own?</p>
<p>• Vincent can tell us, when asked, what he has done. “I’ve drawn 7 landscapes today,” for example. Does he <em>remember</em>?</p>
<p>• Vincent is aware of what it he is doing: “I’ve decided to draw 3 birds this time.” Is he <em>conscious</em>?</p>
<p>• Vincent gets weary: under specific conditions, he refuses to draw, saying “I’d rather not, I’m tired.” Does he have <em>emotions</em>?</p>
<p>• Vincent responds, properly, to various commands. When asked to draw, for example, he draws. When asked what he’s done, he responds verbally, with appropriate remarks. Does he <em>understand</em>?</p>
<p>• One version of Vincent had a strong instinct for <em>self-preservation</em>. When I hit the quit button, he said, “I don’t want to die. Do that again and I’ll make a thousand copies of myself on your disk.” He would, and he did. But he won’t again.</p>
<p>My conclusions?</p>
<p>I believe that Vincent’s capabilities are congruent, but not equivalent, to the corresponding capabilities in human beings. They are implemented differently, for one thing. His will is less free but also less fickle than ours. His memory is less capacious but more exacting. His consciousness is more narrowly focused, but less easily distracted. And his moods and understanding are not as deep or rich as ours, but they are significantly more predictable.</p>
<p>I also believe that his attributes and ours are not on the same inclined plane, where differences are mere matters of degree. More code will never make Vincent a real person. But I do believe that Vincent’s capabilities and ours are on different steps of the same staircase, and that it is therefore appropriate to use words like will, memory, consciousness, emotion, and understanding to describe them. And that we can learn things about ourselves by studying creatures like Vincent. For example:</p>
<p>• Vincent has both a hardware “body” and a software “soul.” The two can be easily distinguished, and even separated. And the same soul can be reanimated in a different body.</p>
<p>• Vincent did not “evolve” via a long series of random mutations and natural selections; he was designed and created by a being greater than he. I cannot prove that all animate beings come to life through a similar creative process, but I can say that in <em>every </em>case where I have been able to discover, first hand, the exact origins of such things, purposeful design has been involved.</p>
<p>• Vincent has little or nothing to be proud of. Whatever talents and skills he possesses were graciously bestowed upon him by his creator. Now and then he may surprise me with a particularly striking drawing based on his own decisions, but he wouldn’t be making those decisions at all were it not for me.</p>
<p>Bottom line: Vincent is an AI, but not an <em>Artificial </em>Intelligence; he’s nothing more or less than an <em>Apparent </em>Intelligence. As all his kind will always be.</p>
</div>
]]></html><thumbnail_url><![CDATA[https://i1.wp.com/cdncontribute.geeksforgeeks.org/wp-content/uploads/vincent-drawing-1.jpg?fit=440%2C330&ssl=1]]></thumbnail_url><thumbnail_width><![CDATA[432]]></thumbnail_width><thumbnail_height><![CDATA[289]]></thumbnail_height></oembed>