<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CkMASX4_eCp7ImA9WhRaFE0.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198</id><updated>2012-02-16T06:54:08.040-07:00</updated><category term="Cryptography" /><category term="Introduction" /><category term="technology" /><category term="Computer Science" /><category term="manga" /><category term="Net Neutrality" /><category term="C" /><category term="politics" /><category term="Dev Diaries" /><category term="Chaos Theory" /><category term="music" /><category term="philosophy" /><category term="Speech" /><category term="Java" /><category term="RSA" /><category term="gaming" /><category term="essays" /><category term="C++" /><category term="economics" /><category term="Computer Security" /><category term="Mathematics" /><category term="MATLAB" /><category term="Shinies" /><category term="Networking" /><category term="history" /><category term="GPG" /><category term="CS" /><title>Metz's Meanderings</title><subtitle type="html">The Wandering Mind of a Sane College Student Amidst the Insanity of a College Campus in America.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://metzmeanderings.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>80</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/MetzsMeanderings" /><feedburner:info uri="metzsmeanderings" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEIGSXkzfCp7ImA9WhZUEE4.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-4504560632839746703</id><published>2011-06-02T10:35:00.000-06:00</published><updated>2011-06-02T10:35:28.784-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-02T10:35:28.784-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="philosophy" /><category scheme="http://www.blogger.com/atom/ns#" term="Mathematics" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Are Computers Isomorphic to Humans?</title><content type="html">&lt;div align="LEFT" style="line-height: 200%; margin-bottom: 0in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Let me preface this essay by admitting that artificial intelligence is an old problem, and  acknowledging that better minds have attacked the question before me (and certainly better minds will come after).  Hence I can in no way expect to resolve the query at hand; only to jot down a few thoughts on the matter, seeking to move myself a bit closer to understanding truths which may ultimately be beyond human reach.  Perhaps it is just as well that most “objective truth” is, at the end of the day, of this nature – for it may well be that we find meaning only by searching for it.  Since I have probably crushed my own credibility enough on the matter at hand, 'tis high time to move on to actually getting lost in the fog, eh?&lt;/div&gt;&lt;div align="LEFT" style="line-height: 200%; margin-bottom: 0in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; No discussion of artificial intelligence would be complete without mentioning the ill-fated Alan Turing.  His test, designed well before the computer era, is nonetheless still one of the most respected processes for determining whether or not a computer has “intelligence.”  If you are not familiar with the Turing Test I will try and concisely explain it:  Given a judge deciphering typewritten messages from two subjects (one a computer, one a human), have the judge attempt to distinguish which subject is the computer, and which the human.  Supposedly, if the judge guesses wrong about half the time or more, we can at that point say that computers have intelligence or are close enough.  Now granted, this idea for a test is not particularly novel (when one thinks of proving a thing sentient, what could be more natural than to compare the thing against himself?), but it has served as a good base to build thought experiments from.  And, hey, it has become something of a tradition to hold such tests as a sideshow at computer conventions, especially those involving artificial intelligence.  Anyway, let us move on to discussing some of the theoretical conclusions arrived at in attempting to build machines that could pass the test, as well as some of the problems inherent to the approach.&lt;/div&gt;&lt;div align="LEFT" style="line-height: 200%; margin-bottom: 0in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; First and foremost, the kind of answers a computer retorts back to user input hypothetically considered by Turing are pretty much as relevant today as they were in Turing's time.  Certainly, a subject having the capacity to do arithmetic correctly at lightning speeds would arouse suspicions that said subject was of more metallic origins.  Yet, as Turing pointed out, and as anyone who is familiar with programming “easier” settings for video games could tell you:  it is quite simple to program a computer to occasionally give wrong answers, and to wait any given amount of time before replying.  So clearly, making a computer behave “as poorly” at math as your typical human is not particularly difficult – and in learning this we have largely set such behaviors aside as being irrelevant to determining how intelligent computers really are.  Indeed, we were probably barking up the wrong tree from the start by trying to define intelligence as the ability to make mistakes.  Or perhaps I should say “appear to make mistakes.”  More on that in a bit.&lt;/div&gt;&lt;div align="LEFT" style="line-height: 200%; margin-bottom: 0in;"&gt; For now, let us consider how a computer might answer a question of aesthetic beauty.  Suppose you showed the computer a painting and asked if it were beautiful or not.  What kind of answer would give the computer away?  To paraphrase the author of the main text we have been reading in this class (&lt;i&gt;Godel, Escher, Bach&lt;/i&gt; by Douglas Hofstadter), does the computer have a large enough soul to appreciate Bach?  We could simply give the computer a learning algorithm (such as a Support Vector Machine or a Neural Network) and a ton of examples of various types of music and artwork, letting it form itself a rough aesthetic scale.  The computer could then turn around and spit out an answer about where on the scale a given piece of art fell, and have it be a rough enough consideration to pass muster with our Turing Test judge.  (For a rough estimate is all humans really give about such a nebulous thing as “beauty” anyway).  What other foils must a computer surmount to pass a Turing Test?&lt;/div&gt;&lt;div align="LEFT" style="line-height: 200%; margin-bottom: 0in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; How about language and communication?  Surely a computer that gave responses which sound repetitive or canned would give itself away.  Or, alternatively, a computer that could not piece together the intended meaning of a given phrase could never return to the user some useful commentary on the phrase; nevermind a meaningful response to the message.  Yet, assuming our judge has an infinite amount of time to keep asking questions (English providing a framework to form an infinite number of different meaningful sentences), it stands to reason that a computer can only have a finite number of potential responses.  And, while a meaningful sentence-forming algorithm seems possible hypothetically, humanity has yet to produce one that actually works well enough to imagine it fooling anyone for very long.  Likewise, we have yet to perfect a parsing algorithm that can be guaranteed to parse any and every meaningful sentence, which is best illustrated by the fact that we still code in “Do What I Say” mode instead of “Do What I Mean” mode.  Which is to say that programming languages are still not in the same category as natural language is.&lt;/div&gt;&lt;div align="LEFT" style="line-height: 200%; margin-bottom: 0in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Now, one could write really complex code such as what Mr. Hofstadter demonstrated in his dialogue between the MIT graduate student and his pet AI.  But, I submit that even such code as that would have problems dealing with an infinite number of different queries from a judge.  For a more in-depth example, consider compilers.  Compilers require their input to fit specific syntactic rules, along with a small number of semantic constraints.  The only way to guarantee a compiler can interpret and take appropriate action on any given string is if the compiler is allowed to “lookahead” towards the next 'symbol' in the given string, an infinite number of times.  But computers cannot do this, because all possible implementations will have limited amounts of lookahead possible.  At the very least, I cannot say I have seen an algorithm capable of accomplishing either interpretation or generation of an infinite number of different meaningful phrases.  Or more simply, there is no algorithm that can keep it up indefinitely.  At some point the computer will come up with an unnatural enough sentence or phrase, or will respond in a completely unexpected way to a misinterpreted sentence, that it will be found out by our judge.&lt;/div&gt;&lt;div align="LEFT" style="line-height: 200%; margin-bottom: 0in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Of course, all this discussion might be quite moot, because much of what we just asked a computer to do, a human may have just as much trouble doing.  Does the idiom “lost in translation” ring a bell?  Even when two perfectly healthy humans are speaking the same language, with words both know very well, it is not so uncommon to encounter misunderstandings and barriers to communication of meaning and intent over completely human means of discussion.  So, if we are trying to make computers human-like, why even bother with considering linguistic operations past some decently approximate level?  Perhaps we have lost sight of our goal:  To write an artificial intelligence capable of fooling a human into believing that the artificial intelligence is not artificial after all.  Well, sure enough, we can imagine a finite set of human-tailored responses the computer could use to fool a human over a short term, and even something more along the lines of a learning program might be used to good effect if the judge queries only within a particular subset of language.  But on the other hand, if we remove the constraints upon the judge's time and number of queries, it is virtually impossible to indefinitely fool the judge into believing the computer responses and requests might have arisen from a human.&lt;/div&gt;&lt;div align="LEFT" style="line-height: 200%; margin-bottom: 0in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; So, perhaps you were wondering when and if I would ever pick back up that thread about the “appearance” of a computer making mistakes.  Well, I suppose I have kept you waiting long enough.  It is my opinion that, while trying to satisfy the Turing test has steered computer science in the direction of building better and better artificial intelligence in the truest sense of artificial, it is quite a pointless venture to begin a journey towards creating intelligence by trying to “fool” a human into thinking a computer is a human.  In fact, if our goal is to produce intelligence equivalent to what we have as humans, we should be far more concerned with the implementation than anything it actually does.  Who cares if this electrical brain can play checkers; is it self-conscious?  Does it make decisions in a non-deterministic way?   Does it have a will?&lt;/div&gt;&lt;div align="LEFT" style="line-height: 200%; margin-bottom: 0in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; But here we have encountered a bit of circular logic.  For, here we are asking if computers can perform in a way we are not actually sure humans do.  We need to ask if thought really is just a higher level representation of neurons firings, and not something more.  Without the notion of free will, all behavior is simply a set of programmed responses to the environment, based upon some unique combination of genes and how our learning algorithms adapted themselves to our environments over time.  In such a case the Turing test would actually be quite appropriate, because our own sense of ourselves as free-willed and non-deterministic beings would be utterly delusional.  If we accept our own sentience in these terms, we can quite easily answer our original query (whether humans and computers are isomorphic) in the affirmative, but can we reason our way to such a conclusion?  Perhaps, in the same way Escher's &lt;i&gt;Dragon&lt;/i&gt; cannot actually become three-dimensional, and analogous to the way Godel proved any formal system sufficiently strong enough to reason about itself must always be incomplete (“incomplete” meaning there are well-formed propositions the system can make which cannot be decided within the system), we humans cannot find our way to a decision about whether &lt;i&gt;we&lt;/i&gt;&lt;span style="font-style: normal;"&gt; are sentient using a system of predicate logic.  Granted, we cannot even prove that the aforementioned question is undecidable at this juncture, but I could hardly do justice to you the reader if I left us wandering through the fog without expressing any kind of solid ground to stand upon.  So humor me in accepting the question as &lt;/span&gt;&lt;i&gt;currently&lt;/i&gt;&lt;span style="font-style: normal;"&gt; undecidable.&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="line-height: 200%; margin-bottom: 0in;"&gt;&lt;span style="font-style: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Now we are allowed to do one of three things.  We could leave the question as undecidable, and appreciate the zen of it all from a distance.  We could accept that humans have sentience in the frame of context we have been discussing (having free will, among other concepts intentionally left somewhat nebulous).  Lastly, we could accept the contrary notion, that humans are not sentient.  I am going to ignore the first option because taking that route would leave us adrift in the same murky waters we were in before accepting the question was undecidable.  Given that the immediate consequences of accepting the notion that humans are not sentient are quite depressing (essentially it would mean accepting a completely deterministic world, where any notions of individuality, achievement, right and wrong, etc are wholly delusional), I think I will hold off on accepting that conclusion.  Where does this leave us?  Accepting that humans have a brand of intelligence that includes free will.  If we accept that, then we have pretty much answered our fundamental query in the negative, because computers and whatever output we get from them are ultimately limited to how &lt;/span&gt;&lt;i&gt;we&lt;/i&gt;&lt;span style="font-style: normal;"&gt; interpret their electrical signals; by definition this puts computers in an entirely different category from humanity.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-4504560632839746703?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eBKGXFDepOLXtc9nmmLnw0Z10xA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eBKGXFDepOLXtc9nmmLnw0Z10xA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eBKGXFDepOLXtc9nmmLnw0Z10xA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eBKGXFDepOLXtc9nmmLnw0Z10xA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/yDDg_VC0Mrw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/4504560632839746703/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/06/are-computers-isomorphic-to-humans.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/4504560632839746703?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/4504560632839746703?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/yDDg_VC0Mrw/are-computers-isomorphic-to-humans.html" title="Are Computers Isomorphic to Humans?" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/06/are-computers-isomorphic-to-humans.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkECRXwyfip7ImA9WhZWEU8.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-3313353380940155240</id><published>2011-05-11T09:44:00.000-06:00</published><updated>2011-05-11T09:44:24.296-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-11T09:44:24.296-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Dev Diaries" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Dev Diary</title><content type="html">&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Spent most of this last week switching between work on developing a Check() hierarchy for validating xml importation, and a minesweeper app for my android app programming class.&amp;nbsp; The former project I can't discuss too much, only to say that I need to learn how to work with registry design patterns, and am not quite clear where the hierarchy is going to go.&amp;nbsp; The latter I am finding much more difficult than it seemed at first.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apparently, most everyone is treating the actual setup of the boxes manually instead of programattically, putting their positioning information into the xml by hand.&amp;nbsp; The way I envision it is more automated (but in turn, more difficult to figure out how to do), with the number and size of the boxes adapting to user input.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-3313353380940155240?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-WFVVi0El-LS_H5P9aZo469MpQQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-WFVVi0El-LS_H5P9aZo469MpQQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-WFVVi0El-LS_H5P9aZo469MpQQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-WFVVi0El-LS_H5P9aZo469MpQQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/1bk8cL4bmR0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/3313353380940155240/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/05/dev-diary.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/3313353380940155240?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/3313353380940155240?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/1bk8cL4bmR0/dev-diary.html" title="Dev Diary" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/05/dev-diary.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUNQX84eSp7ImA9WhZXFUg.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-4083754213104139376</id><published>2011-05-04T17:54:00.000-06:00</published><updated>2011-05-04T17:54:50.131-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-04T17:54:50.131-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Dev Diaries" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Dev Diary May 4th, 2011</title><content type="html">&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; So, I got a job working as an intern working for a company by the name of Data In Motion as of this last Monday.&amp;nbsp; Not much to say about it as of yet except that there's a ton to the job, and I am currently... whelmed at the tasks ahead.&amp;nbsp; That is to say, it's certainly daunting, but I think if I take it one piece at a time (like one of my favorite Johnny Cash songs) I'll get to understanding it, and be able to make myself useful to my employers.&amp;nbsp; For the time being, they are doing a lot more for me than I am for them, and it is currently just a hope to be a good return on that investment.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; All that having been said, I probably won't be sharing my code from work-related projects here on my blog, unless given explicit permission to do so.&amp;nbsp; I am also starting a class for developing android applications, and may share some of the toy programs from that class (albeit if it looks even marginally profitable I'd be keeping mum).&amp;nbsp; So that's the situation if you were wondering when my next interesting tidbit of code would appear.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; And now I'm off to spend the rest of the evening getting used to some new equipment.&amp;nbsp; And to read up on marker, visitor, and singleton design patterns.&amp;nbsp; On a complete sidenote, I should remind myself to strongly suggest to my professors here at Westminster to implement a class focused on design patterns.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-4083754213104139376?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/B4y6n_Kyao9b8qK-JbcIfwVbDSQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B4y6n_Kyao9b8qK-JbcIfwVbDSQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/B4y6n_Kyao9b8qK-JbcIfwVbDSQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B4y6n_Kyao9b8qK-JbcIfwVbDSQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/Il3TB_jE7QE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/4083754213104139376/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/05/dev-diary-may-4th-2011.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/4083754213104139376?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/4083754213104139376?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/Il3TB_jE7QE/dev-diary-may-4th-2011.html" title="Dev Diary May 4th, 2011" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/05/dev-diary-may-4th-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4BSXw9eip7ImA9WhZXEEw.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-5596693405799874476</id><published>2011-04-28T13:29:00.002-06:00</published><updated>2011-04-28T13:29:18.262-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T13:29:18.262-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB" /><category scheme="http://www.blogger.com/atom/ns#" term="Mathematics" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>SVM Tester</title><content type="html">function [score iter correct falseNeg falsePos unsures] = TestVectorMachine( weight, kernel, labels, bias )&lt;br /&gt;
&lt;br /&gt;
%Test function for vector machien -- takes in a set of training data and&lt;br /&gt;
%its labels and tests a given set of alphas and a bias against it&lt;br /&gt;
[xn xm] = size(kernel);&lt;br /&gt;
[yn ym] = size(labels);&lt;br /&gt;
[an am] = size(weight);&lt;br /&gt;
&lt;br /&gt;
%if(xn ~= am || ym ~= xn)&lt;br /&gt;
&amp;nbsp; %&amp;nbsp; display('Sorry, this is an idiot proof function.&amp;nbsp; Try again!');&lt;br /&gt;
&amp;nbsp;%&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;
%end&lt;br /&gt;
falseNeg = 0;&lt;br /&gt;
falsePos = 0;&lt;br /&gt;
unsures = 0;&lt;br /&gt;
iter = 0;&lt;br /&gt;
for i = 1:xn&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; fXi = (weight .* labels) * kernel(i,:) + bias;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fXi * labels(i))&amp;nbsp; &amp;lt;= 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(fXi &amp;gt; 0)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; falsePos = falsePos + 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(fXi &amp;lt; 0)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; falseNeg = falseNeg + 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(fXi == 0)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsures = unsures + 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iter = iter + 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
score = (xn - iter) / xn * 100;&lt;br /&gt;
correct = xm - iter;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-5596693405799874476?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gkfPVSuu03N53h8wBMUTIYhMpDw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gkfPVSuu03N53h8wBMUTIYhMpDw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gkfPVSuu03N53h8wBMUTIYhMpDw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gkfPVSuu03N53h8wBMUTIYhMpDw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/EzkayH46Ovk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/5596693405799874476/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/04/svm-tester.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/5596693405799874476?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/5596693405799874476?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/EzkayH46Ovk/svm-tester.html" title="SVM Tester" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/04/svm-tester.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4HQHs9fCp7ImA9WhZXEEw.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-3461329922123903011</id><published>2011-04-28T13:28:00.005-06:00</published><updated>2011-04-28T13:28:51.564-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T13:28:51.564-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB" /><category scheme="http://www.blogger.com/atom/ns#" term="Mathematics" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Soft Margin one-norm SVM</title><content type="html">function [ weights bias ] = TannSchmidVectorMachineSoftMarginUno( K, H, labels, C)&lt;br /&gt;
%Toggle details which kernel we use&lt;br /&gt;
&lt;br /&gt;
[xm xn] = size(K);&lt;br /&gt;
[ym yn] = size(labels);&lt;br /&gt;
&lt;br /&gt;
%scale C down&lt;br /&gt;
C = C / xm;&lt;br /&gt;
&lt;br /&gt;
%check to make sure training &amp;amp; labels have same dimension and toggle is&lt;br /&gt;
%valid&lt;br /&gt;
&lt;br /&gt;
if xm ~= ym&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; display('Sorry, this is an idiot proof function. Try feeding in valid parameters next time, doof!');&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%allocate space for different parts&lt;br /&gt;
f = zeros(xm, 1);&lt;br /&gt;
A = zeros(2 * xm + 4, xm);&lt;br /&gt;
b = zeros(2 * xm + 4, 1);&lt;br /&gt;
&lt;br /&gt;
%build constraints matrix&lt;br /&gt;
A(1,:) = labels';&lt;br /&gt;
A(2,:) = -labels';&lt;br /&gt;
A(3,:) = ones(1, xm);&lt;br /&gt;
A(4,:) = -ones(1, xm);&lt;br /&gt;
for i = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; A(i+4, i) = 1;&lt;br /&gt;
end&lt;br /&gt;
for i = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; A(i+4+xm, i) = -1;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
b = [0; 0; 1; -1; (C - 10^(-7)) * ones(xm,1); zeros(xm, 1)];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
[weights v] = quadprog(H, f, A, b);&lt;br /&gt;
&lt;br /&gt;
%find the bias&lt;br /&gt;
bias = GetSoftBiasUno(weights, K, labels, C);&lt;br /&gt;
bias = bias / sqrt(weights' * H * weights);&lt;br /&gt;
&lt;br /&gt;
save('recordedResults0', 'weights', 'bias', 'K');&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-3461329922123903011?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vDi8Cp0WiUZpRlhPOLmj-32YYQY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vDi8Cp0WiUZpRlhPOLmj-32YYQY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vDi8Cp0WiUZpRlhPOLmj-32YYQY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vDi8Cp0WiUZpRlhPOLmj-32YYQY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/CRjPHDny8oQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/3461329922123903011/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/04/soft-margin-one-norm-svm_28.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/3461329922123903011?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/3461329922123903011?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/CRjPHDny8oQ/soft-margin-one-norm-svm_28.html" title="Soft Margin one-norm SVM" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/04/soft-margin-one-norm-svm_28.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4EQ3s7cSp7ImA9WhZXEEw.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-343669959841894597</id><published>2011-04-28T13:28:00.002-06:00</published><updated>2011-04-28T13:28:22.509-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T13:28:22.509-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB" /><category scheme="http://www.blogger.com/atom/ns#" term="Mathematics" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Soft Margin 2-norm SVM</title><content type="html">function [ weights bias ] = TannSchmidVectorMachineSoftMarginDos( K, H, labels, C)&lt;br /&gt;
%Toggle details which kernel we use&lt;br /&gt;
&lt;br /&gt;
[xm xn] = size(K);&lt;br /&gt;
[ym yn] = size(labels);&lt;br /&gt;
&lt;br /&gt;
%scale C down&lt;br /&gt;
C = C / xm;&lt;br /&gt;
H = (1/2) * (H + (1 / C) * eye(xm, xn));&lt;br /&gt;
&lt;br /&gt;
%check to make sure training &amp;amp; labels have same dimension and toggle is&lt;br /&gt;
%valid&lt;br /&gt;
&lt;br /&gt;
if xm ~= ym&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; display('Sorry, this is an idiot proof function. Try feeding in valid parameters next time, doof!');&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%allocate space for different parts&lt;br /&gt;
f = zeros(xm, 1);&lt;br /&gt;
A = zeros(xm + 4, xm);&lt;br /&gt;
b = zeros(xm + 4, 1);&lt;br /&gt;
&lt;br /&gt;
%build constraints matrix&lt;br /&gt;
A(1,:) = labels';&lt;br /&gt;
A(2,:) = -labels';&lt;br /&gt;
A(3,:) = ones(1, xm);&lt;br /&gt;
A(4,:) = -ones(1, xm);&lt;br /&gt;
for i = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; A(i+4, i) = -1;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
b = [0; 0; 1; -1; zeros(xm, 1)];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
[weights v] = quadprog(H, f, A, b);&lt;br /&gt;
&lt;br /&gt;
%find the bias&lt;br /&gt;
bias = GetSoftBiasDos(weights, K, labels, C);&lt;br /&gt;
bias = bias / sqrt(weights' * H * weights);&lt;br /&gt;
&lt;br /&gt;
save('recordedResults0', 'weights', 'bias', 'K');&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-343669959841894597?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7sry3u2PIaGbQZcNEu_gxiaz8Q4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7sry3u2PIaGbQZcNEu_gxiaz8Q4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7sry3u2PIaGbQZcNEu_gxiaz8Q4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7sry3u2PIaGbQZcNEu_gxiaz8Q4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/KhJgZsUnw2s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/343669959841894597/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/04/soft-margin-2-norm-svm.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/343669959841894597?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/343669959841894597?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/KhJgZsUnw2s/soft-margin-2-norm-svm.html" title="Soft Margin 2-norm SVM" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/04/soft-margin-2-norm-svm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8DR346cSp7ImA9WhZXEEw.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-6468448727967927717</id><published>2011-04-28T13:27:00.004-06:00</published><updated>2011-04-28T13:27:56.019-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T13:27:56.019-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB" /><category scheme="http://www.blogger.com/atom/ns#" term="Mathematics" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Hard Margin one-norm SVM</title><content type="html">function [ weights bias ] = TannSchmidVectorMachineHardMarginUno( K, H, labels)&lt;br /&gt;
%Toggle details which kernel we use&lt;br /&gt;
&lt;br /&gt;
[xm xn] = size(K);&lt;br /&gt;
[ym yn] = size(labels);&lt;br /&gt;
&lt;br /&gt;
%check to make sure training &amp;amp; labels have same dimension and toggle is&lt;br /&gt;
%valid&lt;br /&gt;
&lt;br /&gt;
if xm ~= ym&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; display('Sorry, this is an idiot proof function. Try feeding in valid parameters next time, doof!');&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%allocate space for different parts&lt;br /&gt;
f = -ones(xm, 1);&lt;br /&gt;
A = zeros(xm +2, xm);&lt;br /&gt;
bias = zeros(xm +2, 1);&lt;br /&gt;
&lt;br /&gt;
%build constraints matrix&lt;br /&gt;
A(1,:) = labels';&lt;br /&gt;
A(2,:) = -labels';&lt;br /&gt;
for i = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; A(i+2, i) = -1;&lt;br /&gt;
end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
[weights v] = quadprog(H, f, A, bias);&lt;br /&gt;
&lt;br /&gt;
%find the bias&lt;br /&gt;
bias = getHardMarginBias(weights, K, labels);&lt;br /&gt;
&lt;br /&gt;
save('recordedResults0', 'weights', 'bias', 'K');&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-6468448727967927717?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/J8U5yXs7xzZaLEezvfazNWR8_rE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/J8U5yXs7xzZaLEezvfazNWR8_rE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/J8U5yXs7xzZaLEezvfazNWR8_rE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/J8U5yXs7xzZaLEezvfazNWR8_rE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/YYt7jNyToOE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/6468448727967927717/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/04/soft-margin-one-norm-svm.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/6468448727967927717?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/6468448727967927717?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/YYt7jNyToOE/soft-margin-one-norm-svm.html" title="Hard Margin one-norm SVM" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/04/soft-margin-one-norm-svm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkANQXY7eyp7ImA9WhZXEEw.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-5551285998774406387</id><published>2011-04-28T13:26:00.003-06:00</published><updated>2011-04-28T13:26:30.803-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T13:26:30.803-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB" /><category scheme="http://www.blogger.com/atom/ns#" term="Mathematics" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Soft Margin one-norm Bias Calculator</title><content type="html">function [ bias ] = GetSoftBiasUno( weights, kernel, labels, C)&lt;br /&gt;
[xm xn] = size(kernel);&lt;br /&gt;
counter = 0;&lt;br /&gt;
bias = 0;&lt;br /&gt;
&lt;br /&gt;
for i = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if weights(i) &amp;gt; (10^-10) &amp;amp;&amp;amp; weights(i) &amp;lt; (C - 10^(-10))&amp;nbsp; %calculate first &amp;lt;w xi&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sgnLastY = labels(i) &amp;gt; 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; partialSum = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for j = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; partialSum = partialSum + labels(j) * kernel(i,j) * weights(j);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %reset partial sum&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wXi = partialSum;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; partialSum = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for j = i:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if weights(i) &amp;gt; (10^-10) &amp;amp;&amp;amp; weights(i) &amp;lt; (C - 10^(-10)) &amp;amp;&amp;amp; sgnLastY ~= (labels(j) &amp;gt; 0)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for j = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; partialSum = partialSum + labels(j) * kernel(i,j) * weights(j);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %save second &amp;lt;w xj&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wXj = partialSum;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bias = bias + -(wXi + wXj) / 2;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; counter = counter + 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
bias = bias / counter;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-5551285998774406387?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PNxR7GaRAmoccu1AyFUc8Ta_fcs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PNxR7GaRAmoccu1AyFUc8Ta_fcs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PNxR7GaRAmoccu1AyFUc8Ta_fcs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PNxR7GaRAmoccu1AyFUc8Ta_fcs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/E8O1rcEsFbw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/5551285998774406387/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/04/soft-margin-one-norm-bias-calculator.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/5551285998774406387?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/5551285998774406387?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/E8O1rcEsFbw/soft-margin-one-norm-bias-calculator.html" title="Soft Margin one-norm Bias Calculator" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/04/soft-margin-one-norm-bias-calculator.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkACQHw5fyp7ImA9WhZXEEw.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-3252436892179180466</id><published>2011-04-28T13:26:00.000-06:00</published><updated>2011-04-28T13:26:01.227-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T13:26:01.227-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB" /><category scheme="http://www.blogger.com/atom/ns#" term="Mathematics" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Soft-Margin 2-norm Bias Calculator</title><content type="html">function [ bias ] = GetSoftBiasDos( weights, kernel, labels, C)&lt;br /&gt;
[xm xn] = size(kernel);&lt;br /&gt;
counter = 0;&lt;br /&gt;
bias = 0;&lt;br /&gt;
&lt;br /&gt;
for i = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if weights(i) &amp;gt; (10^-10)&amp;nbsp; %calculate first &amp;lt;w xi&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sgnLastY = labels(i) &amp;gt; 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; partialSum = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for j = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; partialSum = partialSum + labels(j) * kernel(i,j) * weights(j);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %reset partial sum&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wXi = partialSum;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; partialSum = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for j = i:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if weights(i) &amp;gt; (10^-10) &amp;amp;&amp;amp; sgnLastY ~= (labels(j) &amp;gt; 0)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for j = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; partialSum = partialSum + labels(j) * kernel(i,j) * weights(j);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %save second &amp;lt;w xj&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wXj = partialSum;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bias = bias + -(wXi + wXj) / 2 - (labels(i) * weights(i) - labels(j) * weights(j)) / (2 * C);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; counter = counter + 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
bias = bias / counter;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-3252436892179180466?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TtLvKkIolDdm3NGcDFc_OYMobRQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TtLvKkIolDdm3NGcDFc_OYMobRQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TtLvKkIolDdm3NGcDFc_OYMobRQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TtLvKkIolDdm3NGcDFc_OYMobRQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/Fzqw6CS1PmQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/3252436892179180466/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/04/soft-margin-2-norm-bias-calculator.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/3252436892179180466?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/3252436892179180466?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/Fzqw6CS1PmQ/soft-margin-2-norm-bias-calculator.html" title="Soft-Margin 2-norm Bias Calculator" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/04/soft-margin-2-norm-bias-calculator.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAFR3ozeSp7ImA9WhZXEEw.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-6929536858659012081</id><published>2011-04-28T13:25:00.002-06:00</published><updated>2011-04-28T13:25:16.481-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T13:25:16.481-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB" /><category scheme="http://www.blogger.com/atom/ns#" term="Mathematics" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Hard Margin Bias Calculator</title><content type="html">function [ bias ] = getHardMarginBias(weights, kernel, labels)&lt;br /&gt;
%returns the bias&lt;br /&gt;
[xm xn] = size(kernel);&lt;br /&gt;
counter = 0;&lt;br /&gt;
bias = 0;&lt;br /&gt;
for i = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if weights(i, 1) &amp;gt; 0.000000000001&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; partialSum = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for j = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; partialSum = partialSum + label(j) * kernel(i,j) * weights(j);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bias = bias + labels(i) - partialSum;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; counter = counter + 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
bias = bias / counter;&lt;br /&gt;
&lt;br /&gt;
end&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-6929536858659012081?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gy1URBTzVB8hexQEKK1arR715jc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gy1URBTzVB8hexQEKK1arR715jc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gy1URBTzVB8hexQEKK1arR715jc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gy1URBTzVB8hexQEKK1arR715jc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/5Fz4RQNNLPo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/6929536858659012081/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/04/hard-margin-bias-calculator.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/6929536858659012081?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/6929536858659012081?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/5Fz4RQNNLPo/hard-margin-bias-calculator.html" title="Hard Margin Bias Calculator" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/04/hard-margin-bias-calculator.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEMQHc7eip7ImA9WhZXEEw.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-1415357146598218291</id><published>2011-04-28T13:24:00.003-06:00</published><updated>2011-04-28T13:24:41.902-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T13:24:41.902-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB" /><category scheme="http://www.blogger.com/atom/ns#" term="Mathematics" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Gaussian Kernel</title><content type="html">function [ result ] = GaussKernel( x, y, sigma )&lt;br /&gt;
result = norm(x - y)^2;&lt;br /&gt;
result = result / sigma;&lt;br /&gt;
result = exp(-result);&lt;br /&gt;
&lt;br /&gt;
end&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-1415357146598218291?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jiV8cSgPahU_lgXupWIvySyFN2w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jiV8cSgPahU_lgXupWIvySyFN2w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jiV8cSgPahU_lgXupWIvySyFN2w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jiV8cSgPahU_lgXupWIvySyFN2w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/wLWQwKmUusY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/1415357146598218291/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/04/gaussian-kernel.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/1415357146598218291?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/1415357146598218291?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/wLWQwKmUusY/gaussian-kernel.html" title="Gaussian Kernel" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/04/gaussian-kernel.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEBQngyfCp7ImA9WhZXEEw.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-8746531166169359674</id><published>2011-04-28T13:24:00.000-06:00</published><updated>2011-04-28T13:24:13.694-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T13:24:13.694-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB" /><category scheme="http://www.blogger.com/atom/ns#" term="Mathematics" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Default Kernel</title><content type="html">function [ result ] = defaultKernel(x, y, A)&lt;br /&gt;
%One of many kernel functions.&amp;nbsp; Takes vectors x and y, returns kernel&lt;br /&gt;
%function as a dot product using a positive definite matrix A&lt;br /&gt;
[xm xn] = size(x);&lt;br /&gt;
[ym yn] = size(y);&lt;br /&gt;
[R isPosDef] = chol(A);&lt;br /&gt;
if isPosDef ~= 0 || xm ~= ym || xn ~= yn || xn == 1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; disp('sorry, this function is idiot proof.&amp;nbsp; Please enter in a positive definite matrix A');&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; result = -1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
result = x * (A * y');&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-8746531166169359674?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6swp5F-M429iGXtFL6Pv35Gou2A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6swp5F-M429iGXtFL6Pv35Gou2A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6swp5F-M429iGXtFL6Pv35Gou2A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6swp5F-M429iGXtFL6Pv35Gou2A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/qtGubTKp1w8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/8746531166169359674/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/04/default-kernel.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/8746531166169359674?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/8746531166169359674?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/qtGubTKp1w8/default-kernel.html" title="Default Kernel" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/04/default-kernel.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEGRH89eyp7ImA9WhZXEEw.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-3086858595225687484</id><published>2011-04-28T13:23:00.002-06:00</published><updated>2011-04-28T13:23:45.163-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T13:23:45.163-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB" /><category scheme="http://www.blogger.com/atom/ns#" term="Mathematics" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Kernel Creator</title><content type="html">function [ K H ] = KernelKreator( training, labels, scale, toggle)&lt;br /&gt;
&lt;br /&gt;
[xm xn] = size(training);&lt;br /&gt;
[ym yn] = size(labels);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if xm ~= ym || toggle &amp;lt; 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; display('Sorry, this is an idiot proof function. Try feeding in valid parameters next time, doof!');&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
K = zeros(xm, xm);&lt;br /&gt;
H = zeros(xm, xm);&lt;br /&gt;
iter = 0;&lt;br /&gt;
%build kernel based on toggle used&lt;br /&gt;
if toggle == 0 %use regular dot product&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for i = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for j = i:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K(i,j) = (defaultKernel(training(i, :), training(j, :), eye(xn))) / scale;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K(j, i) = K(i,j);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H(i,j) = (K(i,j) * labels(i) * labels(j));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H(j,i) = H(i,j);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iter = iter + 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
%put other toggles here for other kernels &lt;br /&gt;
elseif toggle == 1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for i = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for j = i:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K(i,j) = (defaultKernel(training(i, :), training(j, :), eye(xn))) / scale;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K(i,j) = (K(i,j) + 1)^2;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K(j, i) = K(i,j);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H(i,j) = (K(i,j) * labels(i) * labels(j));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H(j,i) = H(i,j);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
elseif toggle == 2&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for i = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for j = i:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K(i,j) = (defaultKernel(training(i, :), training(j, :), eye(xn))) / scale;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K(i,j) = (K(i,j) + 1)^3;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K(j, i) = K(i,j);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H(i,j) = (K(i,j) * labels(i) * labels(j));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H(j,i) = H(i,j);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
elseif toggle == 3&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for i = 1:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for j = i:xm&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K(i,j) = GaussKernel(training(i, :), training(j, :), scale);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K(j,i) = K(i,j);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H(i,j) = (K(i,j) * labels(i) * labels(j));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H(j,i) = H(i,j);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
end&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-3086858595225687484?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PwZvf0qOo059N-aUW2NTM9PMoEQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PwZvf0qOo059N-aUW2NTM9PMoEQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PwZvf0qOo059N-aUW2NTM9PMoEQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PwZvf0qOo059N-aUW2NTM9PMoEQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/1p2QHINK7eI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/3086858595225687484/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/04/kernel-creator.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/3086858595225687484?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/3086858595225687484?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/1p2QHINK7eI/kernel-creator.html" title="Kernel Creator" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/04/kernel-creator.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIBQXw4eyp7ImA9WhZXEEw.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-7166604938411076630</id><published>2011-04-28T13:22:00.000-06:00</published><updated>2011-04-28T13:22:30.233-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T13:22:30.233-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB" /><category scheme="http://www.blogger.com/atom/ns#" term="Mathematics" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Support Vector Machines</title><content type="html">For our Applied Topics in Mathematics class we had to code up some basic versions of support vector machines.&amp;nbsp; One of my classmates and I coded the following 3:&amp;nbsp; A hard margin, one-margin maximal weight SVM and 2 soft-margin maximal margin SVMs (one-norm &amp;amp; two-norm versions).&amp;nbsp; The next few posts will be the MATLAB code of those machines.&amp;nbsp; Feel free to comment on them and offer any suggestions where appropriate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-7166604938411076630?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wuGVWOxcyGzg7TtcPYEGa6BPHiw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wuGVWOxcyGzg7TtcPYEGa6BPHiw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wuGVWOxcyGzg7TtcPYEGa6BPHiw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wuGVWOxcyGzg7TtcPYEGa6BPHiw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/Hedj49Iqvjw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/7166604938411076630/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/04/support-vector-machines.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/7166604938411076630?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/7166604938411076630?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/Hedj49Iqvjw/support-vector-machines.html" title="Support Vector Machines" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/04/support-vector-machines.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcNSXg-cSp7ImA9Wx9VFEs.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-6002410186595762341</id><published>2011-01-31T02:44:00.000-07:00</published><updated>2011-01-31T02:44:58.659-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-31T02:44:58.659-07:00</app:edited><title>Math:  Discovered or Invented</title><content type="html">&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:OfficeDocumentSettings&gt;   &lt;o:AllowPNG/&gt;  &lt;/o:OfficeDocumentSettings&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:TrackMoves/&gt;   &lt;w:TrackFormatting/&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:DoNotPromoteQF/&gt;   &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:LidThemeAsian&gt;JA&lt;/w:LidThemeAsian&gt;   &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:SplitPgBreakAndParaMark/&gt;    &lt;w:EnableOpenTypeKerning/&gt;    &lt;w:DontFlipMirrorIndents/&gt;    &lt;w:OverrideTableStyleHps/&gt;    &lt;w:UseFELayout/&gt;   &lt;/w:Compatibility&gt;   &lt;m:mathPr&gt;    &lt;m:mathFont m:val="Cambria Math"/&gt;    &lt;m:brkBin m:val="before"/&gt;    &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;    &lt;m:smallFrac m:val="off"/&gt;    &lt;m:dispDef/&gt;    &lt;m:lMargin m:val="0"/&gt;    &lt;m:rMargin m:val="0"/&gt;    &lt;m:defJc m:val="centerGroup"/&gt;    &lt;m:wrapIndent m:val="1440"/&gt;    &lt;m:intLim m:val="subSup"/&gt;    &lt;m:naryLim m:val="undOvr"/&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267"&gt;   &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;   &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;   &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;   &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;   &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;   &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;   &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;   &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;   &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;   &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;   &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;   &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;   &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;
 /* 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:0in 5.4pt 0in 5.4pt;
 mso-para-margin-top:0in;
 mso-para-margin-right:0in;
 mso-para-margin-bottom:10.0pt;
 mso-para-margin-left:0in;
 line-height:115%;
 mso-pagination:widow-orphan;
 font-size:11.0pt;
 font-family:"Calibri","sans-serif";
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:minor-latin;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt; &lt;![endif]--&gt;  &lt;br /&gt;
&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;According to the dictionary definition function on google (which in this case accesses a dictionary put together by Princeton university) discovery is either “the act of discovering something” or merely “a productive insight.”&lt;span&gt;&amp;nbsp; &lt;/span&gt;From the same source, invention is either “the creation of something in the mind” or “a new device or process resulting from study and experimentation.”&lt;span&gt;&amp;nbsp; &lt;/span&gt;Which of these definitions best suits Mathematics?&lt;span&gt;&amp;nbsp; &lt;/span&gt;Maybe a better question is whether invention and discovery are even mutually exclusive – that is, could it be the case that Mathematics involves both?&lt;span&gt;&amp;nbsp; &lt;/span&gt;Let us work towards answering this question by first discussing the semantics of “discovery” and “invention” in more depth.&lt;span&gt;&amp;nbsp; &lt;/span&gt;From there it would behoove us to contemplate the historical development of Mathematics, using David M. Burton’s textbook “The History of Mathematics” (which I will admit may be a fruitless effort, given that our knowledge of ancient civilizations is surprisingly limited).&lt;span&gt;&amp;nbsp; &lt;/span&gt;Lastly we ought to discuss the larger philosophical theories and their logical consequences concerning whether Mathematics is discovered or invented – Platonism and Nominalism.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Naturally, I will follow this analysis up with my own concluding remarks.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;So, on to semantics!&lt;span&gt;&amp;nbsp; &lt;/span&gt;If we are to take Princeton’s word for it, discovery can be merely “a productive insight” and invention “a new device or process resulting from study and experimentation.”&lt;span&gt;&amp;nbsp; &lt;/span&gt;But then, where do we get insight if not from experimentation?&lt;span&gt;&amp;nbsp; &lt;/span&gt;And if we decide upon a certain process based on trial and error, is the criterion used to judge its usefulness devoid of any productive insight?&lt;span&gt;&amp;nbsp; &lt;/span&gt;It would seem from this line of reasoning that invention and discovery, while not perfect synonyms, are in many ways difficult to differentiate.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Therefore, let us decide upon some more useful definitions particular to the discovery or invention of Mathematics.&lt;span&gt;&amp;nbsp; &lt;/span&gt;If we say “Mathematics is discovered” let us agree that this entails Mathematic principles and truths existing independent of whether or not any intelligent being thought about them or described them in a particular language.&lt;span&gt;&amp;nbsp; &lt;/span&gt;(This is essentially Mathematical Platonism, but we will get to that later).&lt;span&gt;&amp;nbsp; &lt;/span&gt;Likewise, “Mathematics is invented” would mean that the notion of performing Mathematical processes is entirely the product of human imagination (Nominalism is the primary philosophical theory associated with this belief).&lt;span&gt;&amp;nbsp; &lt;/span&gt;A &lt;i&gt;via media&lt;/i&gt; approach would be piecewise, stating that some parts are invented and some are discovered.&lt;span&gt;&amp;nbsp; &lt;/span&gt;With our terminology clarified, let us move on to examining the relevant history.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;The oldest objects of Mathematical note mentioned by Burton are sticks and bones which he postulates were used as a primitive means to count.&lt;span&gt;&amp;nbsp; &lt;/span&gt;A trek further along the timeline brings us to Egyptians and Babylonians, who apparently have developed more advanced Mathematical concepts such as adding and subtracting more than one at a time, multiplication, doubling, fractions, and even geometry.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Spin the globe and we arrive in the ancient Mayan culture which had evidently come up with a representation for zero.&lt;span&gt;&amp;nbsp; &lt;/span&gt;A little further south and we would encounter Incans with complicated rope schemes for keeping track of taxes, among other things.&lt;span&gt;&amp;nbsp; &lt;/span&gt;In one light, it seems that multiple cultures came to relatively similar beliefs about certain Mathematical concepts in a fairly independent manner.&lt;span&gt;&amp;nbsp; &lt;/span&gt;This would support the idea that Mathematical truths and principles are totally independent of who is thinking about them and what their socio-cultural belief structure might be.&lt;span&gt;&amp;nbsp; &lt;/span&gt;On the other hand, if one is to assume the stance of some evolutionists (that all humans originated in Africa with the same language) it would not be a far stretch to find early trade of ideas feasible.&lt;span&gt;&amp;nbsp; &lt;/span&gt;This would serve to give some weight to the argument for invention over discovery.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Even the Biblical conjecture of a general confusion and dispersal after the Tower of Babel indicates the possibility that many Mathematical ideas could have been transferred at that time or prior; eliminating the necessity of independent discovery.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Which is it then – discovered or invented?&lt;span&gt;&amp;nbsp; &lt;/span&gt;This line of inquiry, barring further archeological evidence, seems to be bereft of conclusive evidence to justify any particular stance.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Perhaps waxing philosophic will prove more fruitful.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Mathematical Platonism, as a philosophical theory, consists of the following three theses:&lt;span&gt;&amp;nbsp; &lt;/span&gt;existence, abstractness, and independence.&lt;span&gt;&amp;nbsp; &lt;/span&gt;That is to say, it is the theory that there exist certain abstract Mathematical objects, whose existence is totally independent of whether or not humanity knows them and understands them.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Furthermore, it supposes that Mathematics, as a scientific process, is the observance of certain of these truths as axioms and definitions.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Theorems would then follow, using logic to determine their truth based upon accepted axioms and definitions.&lt;span&gt;&amp;nbsp; &lt;/span&gt;If the chosen axioms and definitions are “true,” then the resulting system should accurately model the real world.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Naturally, Platonists allot some degree of invention to the divining of the proper axioms and definitions, but there is something of an implied assertion that there is a right “answer” to be found – a set of Mathematical laws that are perfectly consistent internally and work in perfect tandem with the natural laws of other branches of science.&lt;span&gt;&amp;nbsp; &lt;/span&gt;It is worth noting that Mathematical Platonism does not come from Plato per se, but since it invests in the idea of abstract ideals existing to be discovered, it is related to Plato’s philosophy about physical forms versus metaphysical ideas.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;By contrast, Nominalism argues that abstract objects do not exist.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Or rather, they only exist in the mind of the particular Mathematician.&lt;span&gt;&amp;nbsp; &lt;/span&gt;It would follow that any principles inferred from a given set of ideas would be limited to the Mathematician himself and would require exposition to others of the same profession (or, at least, would require similar circumstances and research to derive).&lt;span&gt;&amp;nbsp; &lt;/span&gt;An important consequence of this view is that there is no “correct” Mathematical system to construct which would reflect all of reality accurately.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The necessity of experimental scientists to deny certain Mathematical truths, in practice, to attain correct results from their experiments would seem to lend credence to this conjecture.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Though, usually such considerations are taken based upon the limitations of the devices used (many such instances come to mind from Computer Science involving round-off errors that arise when representing infinite items in a discrete form).&lt;span&gt;&amp;nbsp; &lt;/span&gt;Furthermore, under Nominalism, any Mathematics past a certain level of abstraction are in certain senses useless, since we remove it farther away from provability using empiricism.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Even internal consistency is no longer as much an issue since general Mathematical theories are no longer in vogue (only particular cases, since there are no universals).&lt;span&gt;&amp;nbsp; &lt;/span&gt;Now that the two major philosophical theories on the subject have been elucidated, it is time to express where I stand &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Finding, from the historical perspective, that it seems much more plausible for significant Mathematical ideas to be developed later rather than sooner; that these ideas were apparently developed independently of one another; and that the Mayans’ use of zero predated the use of zero in western civilization by a few millennium, I endorse Platonism.&lt;span&gt;&amp;nbsp; &lt;/span&gt;A more concrete answer is to say that while I do believe there is some creativity involved in coming up with the correct approach to certain axioms and definitions, the idea that multiple cultures in multiple eras, which had a relatively tiny possibility of meeting to share ideas, ended up with essentially the same concepts and processes seems somewhat absurd.&lt;span&gt;&amp;nbsp; &lt;/span&gt;If such cultures came up with the same idea without contact between each other, it seems far more likely that they were simply looking at the same problems and coming up with the same math to solve the given problem.&lt;span&gt;&amp;nbsp; &lt;/span&gt;That is, that the principles were there for the discovering, and would necessarily always give the same conceptual answer.&lt;span&gt;&amp;nbsp; &lt;/span&gt;In addition (and while this may be something of a return to the earlier discussion of semantics) it would seem odd to call the Mathematical process from axiom to theorem anything but a “discovery process.”&lt;span&gt;&amp;nbsp; &lt;/span&gt;Lastly, I am of the belief that the existence of abstract Mathematical objects is logically equivalent to the existence of abstract natural laws, such that the denial of the one is the denial of the other.&lt;span&gt;&amp;nbsp; &lt;/span&gt;That is not to say that our current representations of said abstract objects in Mathematics and other sciences are free from all error, but rather such abstract objects must exist, and all of science is our journey to discover and properly describe them.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-6002410186595762341?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MmuWgwtXPJ8icmX7f_irPBCqT5Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MmuWgwtXPJ8icmX7f_irPBCqT5Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MmuWgwtXPJ8icmX7f_irPBCqT5Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MmuWgwtXPJ8icmX7f_irPBCqT5Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/X7XAcqkVEGY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/6002410186595762341/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/01/math-discovered-or-invented.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/6002410186595762341?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/6002410186595762341?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/X7XAcqkVEGY/math-discovered-or-invented.html" title="Math:  Discovered or Invented" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/01/math-discovered-or-invented.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIDQ38-eip7ImA9Wx9XGEw.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-3284082959603844673</id><published>2011-01-11T23:42:00.000-07:00</published><updated>2011-01-11T23:42:52.152-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-11T23:42:52.152-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="philosophy" /><category scheme="http://www.blogger.com/atom/ns#" term="politics" /><title>On Political Jargon:  A Somewhat Immodest Proposal</title><content type="html">Fellow denizens of the net:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I move we realign a lot of terminology in our country's political vernacular to be more consistent through history.&amp;nbsp; Specifically, the following jargon needs to be addressed:&lt;br /&gt;
&lt;br /&gt;
Liberal -- We ought to use this term only in respect to the liberal tradition present in English and American history, typically dated back to Edmund Burke (though really present in society at least as far back as King John was forced to sign the Great Charter).&amp;nbsp; This consists of a trend towards more freedom of speech and religion.&amp;nbsp; If any current political movement can be said to express the ideals of this tradition it would be the Libertarian Party.&amp;nbsp; The term has nothing to do historically with Democratic Socialism, and it would be inadvisable to continue using it in a manner that suggests a relation.&lt;br /&gt;
&lt;br /&gt;
Moonbattery -- This term could potentially refer to a Lunar weapon emplacement, which is far too awesome to leave it as a derogatory term referring to those who believe that criminals follow laws, that government is a wealth creator, and/or those who simply suffer from BDS (Bush Derangement Syndrome).&lt;br /&gt;
&lt;br /&gt;
Reform -- We ought to only apply this particular term when a plan of action demonstrably improves a specific program, either by decreasing costs or improving efficiency or effectiveness.&amp;nbsp; Making only cosmetic changes, or making changes which will obviously worsen the situation should not be considered as reform.&lt;br /&gt;
&lt;br /&gt;
The Political Spectrum / The Right-Left Axis -- In regards to this, it really is an overgeneralization, and always has been.&amp;nbsp; I would recommend dropping it altogether from our vernacular.&amp;nbsp; If we must continue its use, it should refer to the classic distinction between the party of the court and the party of the country, republicans versus monarchists, or in the US, federalism versus states' rights.&amp;nbsp; If I were to put this in terms of modern pundits, think Bill O'Reilly as your typical lefty, Rush Limbaugh as probably dead center, and Nick Gillespie as your typical righty.&amp;nbsp; Such a spectrum would more accurately be in line with our history.&lt;br /&gt;
&lt;br /&gt;
Grassroots/Astroturf -- I'm in favor of throwing both terms out, because while it ought to be seen as pathetic when you have to pay people to agree with you, I think we're intelligent enough to view _any_ idea thrown out in the public venue abstractly (regardless of who/where it came from).&amp;nbsp; It does not seem useful to make a distinction between opinions based on what occupation the person comes from.&amp;nbsp; Bad ideas are bad ideas, and good ideas are good ideas no matter who came up with them.&lt;br /&gt;
&lt;br /&gt;
Expert -- There are certain subjects which require such specific layers of knowledge and understanding that I think most people implicitly understand that the person involved really does deserve to be taken credible.&amp;nbsp; Then there's everything else:&amp;nbsp; history, sociology, political science, economics, literature, art, psychology, business, marketing, etc.&amp;nbsp; The only expertise involved in this list of topics is what we all learned in high school -- the ability to analyze information and report on it.&amp;nbsp; I'm not sure even a differentiation between professional and amateur would be in order for any of the aforementioned "skills."&lt;br /&gt;
&lt;br /&gt;
Welfare -- Basically, this ought to return to referring to infrastructure that maintains, promotes, and/or improves public well-being.&amp;nbsp; It should not refer to any private goods or services given to a specific individual.&lt;br /&gt;
&lt;br /&gt;
Global Warming -- Either make this term refer only to the kind of pseudo-science Al Gore endorses, or use it only in the sense of a layman's term for the Greenhouse Effect.&amp;nbsp; I get tired of having to explain that I think AGW is a hoax, not trying to claim the aforementioned scientific phenomena doesn't happen.&lt;br /&gt;
&lt;br /&gt;
And that's it...for now.&amp;nbsp; I may think of some more later, but readjusting this stuff would make politics a lot clearer and more consistent not only for us now, but in keeping a consistent historical context for progeny's sake.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-3284082959603844673?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/52xESnWDkwu0HiPMxQdPjojS6BE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/52xESnWDkwu0HiPMxQdPjojS6BE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/52xESnWDkwu0HiPMxQdPjojS6BE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/52xESnWDkwu0HiPMxQdPjojS6BE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/U1E7ks5jIqU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/3284082959603844673/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/01/on-political-jargon-somewhat-immodest.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/3284082959603844673?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/3284082959603844673?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/U1E7ks5jIqU/on-political-jargon-somewhat-immodest.html" title="On Political Jargon:  A Somewhat Immodest Proposal" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/01/on-political-jargon-somewhat-immodest.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EMSH06cSp7ImA9Wx9XFko.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-2052045857369160522</id><published>2011-01-10T10:14:00.000-07:00</published><updated>2011-01-10T10:14:49.319-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-10T10:14:49.319-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB" /><category scheme="http://www.blogger.com/atom/ns#" term="Mathematics" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Some MATLAB functions to create matrices representing steps in Gaussian Elimination</title><content type="html">function interchangeRows = interchangeRows(i, j, n, m)&lt;br /&gt;
A = eye(n,m);&lt;br /&gt;
A(i,i) = A(j,j) = 0;&lt;br /&gt;
A(i,j) = A(j,i) = 1;&lt;br /&gt;
interchangeRows = A;&lt;br /&gt;
&lt;br /&gt;
function multiplyRowbyScalar = multiplyRowbyScalar(j, alpha, n, m)&lt;br /&gt;
A = eye(n,m);&lt;br /&gt;
A(j, j) = alpha;&lt;br /&gt;
multiplyRowbyScalar = A;&lt;br /&gt;
&lt;br /&gt;
function multiplyRowIbyScalarAddRowJ = multiplyRowIbyScalarAddRowJ(i, j, alpha, n, m)&lt;br /&gt;
A = eye(n, m);&lt;br /&gt;
A(j, i) = alpha;&lt;br /&gt;
multiplyRowIbyScalarAddRowJ = A;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-2052045857369160522?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/v2W4cyWQlXXUBelX6-8ejXMx0-o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v2W4cyWQlXXUBelX6-8ejXMx0-o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/v2W4cyWQlXXUBelX6-8ejXMx0-o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v2W4cyWQlXXUBelX6-8ejXMx0-o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/lGFj0VEoog8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/2052045857369160522/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2011/01/some-matlab-functions-to-create.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/2052045857369160522?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/2052045857369160522?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/lGFj0VEoog8/some-matlab-functions-to-create.html" title="Some MATLAB functions to create matrices representing steps in Gaussian Elimination" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2011/01/some-matlab-functions-to-create.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYFQ3g5fip7ImA9Wx9TFUs.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-3656492608012539186</id><published>2010-11-23T17:55:00.000-07:00</published><updated>2010-11-23T17:55:12.626-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-23T17:55:12.626-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Net Neutrality" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Security" /><category scheme="http://www.blogger.com/atom/ns#" term="politics" /><category scheme="http://www.blogger.com/atom/ns#" term="Networking" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Net Neutrality Summary</title><content type="html">&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The following is a summary of a presentation I'm to give on the Tuesday of next week.&amp;nbsp; Lemme know what you think -- whether or not it hits all the points of interest on the topic, if the organization is well structured, etc.&amp;nbsp; Do note that this is merely a summary, not a full on paper, so use of abbreviations and conversational inconsistency of person shouldn't be of particular concern.&lt;br /&gt;
&lt;br /&gt;
Daniel Tanner&lt;br /&gt;
November 23rd, 2010&lt;br /&gt;
CMPT 335&lt;br /&gt;
Net Neutrality Presentation&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; My security presentation covers the topic of Net Neutrality.&amp;nbsp; It is relevant to our class in security because it has to do with the availability and integrity of internet services.&amp;nbsp; Definition of the term "Network Neutrality" itself is as good a place as any to begin.&amp;nbsp; I should like to follow up with a consideration of various bills that have been introduced or passed in congress relating to the issue, leading into a discussion of the current one on the table.&amp;nbsp; Naturally this will lead into consideration of the current policies in place at the Federal Communications Commission and some cases which have come up.&amp;nbsp; Since the presentation up to said point will mostly engender the 'for' or 'pro' side of the issue, it seems only fair to round it out by discussing some of the concerns of parties opposed to the bill.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Net Neutrality" is rather difficult to pin down to one specific definition, since the definition used in legislative bills on the subject use one definition, internet service providers and network administrators use another, and the popular media uses still another.&amp;nbsp; The current policy of the Federal Communication Commission is often described as one of network neutrality, where all content is treated equally and there is no prioritization.&amp;nbsp; To put that into more specific terminology, it would seem to mean that no packet prioritization is in play (routers act as a 'dumb' network where the actual content of packet doesn't come into consideration).&amp;nbsp; This is not quite how the network works in reality (for example, compare UDP and TCP/IP protocols and how TCP is built to scale itself back when traffic gets heavy, while UDP does not.&amp;nbsp; This effectively gives any content using UDP priority over TCP traffic).&amp;nbsp; This is where another definition of network neutrality comes into play; that it is a policy of equal treatment in regard to users using certain services.&amp;nbsp; Providers are prohibited from blocking or throttling any 'lawful' services and/or any 'lawful' content (where lawful is generally taken to refer to trafficking of certain content like child pornography being illegalized).&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A number of bills have come and gone through congress in an effort to pass more regulations concerning network traffic control.&amp;nbsp; The first of these bills comes from around 2005, under the name of the Internet Freedom and Nondiscrimination Act.&amp;nbsp; When that failed, congress attempted to include most of the basic legislation as a rider on the COPE Act, though this was also shot down.&amp;nbsp; It was again brought to the floor as the Net Neutrality Bill.&amp;nbsp;&amp;nbsp; This one also failed to pass, and the modern incarnation which is currently in committee hearings is called the Internet Freedom Preservation Act.&amp;nbsp; I've included the summary of the bill as part of the presentation and intend to read the main points of the policy, but it essentially prohibits ISPs from:&amp;nbsp; preventing any particular individual from using internet access services, imposing special charges on particular types of content providers, preventing the usage of any 'lawful' device in conjunction with said services, establishing a scheme for prioritizing any given host's traffic over other hosts, and/or installing any network functionality to enable any of the aforementioned activities.&amp;nbsp; It also sets the FCC up as the agency in charge of enforcing said regulations.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The current policy of the FCC isn't actually all that different than the proposed bill, though the regulations tend towards the vague and nebulous.&amp;nbsp; Basically the policy is that all users should have access to lawful content, be able to run lawful applications/services, use lawful devices, and the FCC is directed to promote competition among iSPs and various content providers.&amp;nbsp; A few incidents have arisen where these various powers have been tested.&amp;nbsp; Whether it has proven enough, too much, or too little has been a primary point of contention among the various parties who have thrown their hats into the socio-political arena of ideas concerning this topic.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comcast has become perhaps the most (in)famous ISP because of a related incident.&amp;nbsp; In October 2007, the company, primarily in an effort to cooperate and comply with RIAA, MPAA, and federal rulings on copyright infringement, decided to block and/or interfere with network traffic assumed to contain pirated music and movies transferred over Bittorrent and other peer-to-peer filesharing software.&amp;nbsp; The method of blocking was rather indirect (a DoS attack using reset packets), but due to the fact that a number of customers had legitimate services hindered or blocked by this incident, Comcast was brought to court by both a class action civil suit and a criminal charge from the FCC.&amp;nbsp; While the criminal charge was not successful (apparently still active in appeals, though), Comcast was charged $16 per share to settle the civil suit.&amp;nbsp; I'll go into more detail on the other events in class, since this summary is already getting long (admittedly, this is the best-documented one).&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Let's finish out with the arguments against.&amp;nbsp; The primary argument is not so much against the idea of Net Neutrality per se, as it is that the system already in place gets the job done.&amp;nbsp; More specifically, the market as it is prevents ISPs from enacting the kind of priority systems previously mentioned; partly because the changing of the hardware is either technically infeasible (too expensive if even possible) or would end up cutting that particular ISP off from the rest of the internet, which is hardly the kind of service customers would want or pay for.&amp;nbsp; Another argument against is the consideration of ISPs as the owners of these various communications networks, which they have paid to implement.&amp;nbsp; Several property, which is, as ever, the central right, would seem to dictate that ISPs ought to have complete control over their own networks and their use (much as wireless communications companies have over their networks); and that any regulations to enforce government control would be unconstitutional.&amp;nbsp; The next argument of note is the consideration of innovation in the network core -- that different methods of network management would be more difficult to attempt, or ISPs would be less likely to try in a more regulated environment.&amp;nbsp; More technically inclined individuals provide yet another argument (and this goes back to the original way in which net neutrality is defined) -- that not all services are equal, and for the network to operate efficiently, different services must necessarily be treated differently.&amp;nbsp; That should cover most, if not all, of the views in both directions.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sources used in gathering the information in this summary and for the presentation are as follows (using Chicago Style Citations):&lt;br /&gt;
&lt;br /&gt;
1&amp;nbsp; Lessig, Lawrence.&amp;nbsp; “No Tolls on the Internet.”&amp;nbsp; The Washington Post.&amp;nbsp; Posted June 8th, 2006.&amp;nbsp; Accessed November 23rd, 2010.&amp;nbsp; http://www.washingtonpost.com/wp-dyn/content/article/2006/06/07/AR2006060702108.html .&lt;br /&gt;
2&amp;nbsp; Wu, Tim.&amp;nbsp; “Network Neutrality FAQ.”&amp;nbsp; Posted December 26th, 2008.&amp;nbsp; Accessed November 23rd, 2010. http://timwu.org/network_neutrality.html .&lt;br /&gt;
3&amp;nbsp; Markey, Edward (Sponsor D-MA) et al.&amp;nbsp; H.R. 3458 – Internet Freedom Preservation Act of 2009. http://www.opencongress.org/bill/111-h3458 .&lt;br /&gt;
4&amp;nbsp; Carter, Nick.&amp;nbsp; “What is Network Neutrality?”&amp;nbsp; Accel Networks:&amp;nbsp; Fixed Wireless Broadband Blog.&amp;nbsp; Posted August 10, 2010.&amp;nbsp; Accessed November 23rd, 2010. http://www.accel-networks.com/blog/index.php?q=/2010/08/what-is-net-neutrality.html .&lt;br /&gt;
5&amp;nbsp; Google et al.&amp;nbsp; Open letter to Congress concerning Net Neutrality policy.&amp;nbsp; Dated March 1, 2006.&amp;nbsp; Accessed November 23rd, 2010. http://www.publicknowledge.org/pdf/nn-letter-20060301.pdf .&lt;br /&gt;
6&amp;nbsp; Dortch, Marlene H.&amp;nbsp; Policy Statement.&amp;nbsp; Federal Communications Commission.&amp;nbsp; Dated September 23rd, 2005.&amp;nbsp; Accessed November 23rd, 2010. http://hraunfoss.fcc.gov/edocs_public/attachmatch/FCC-05-151A1.pdf &lt;br /&gt;
7&amp;nbsp; “Net Neutrality.”&amp;nbsp; Wikipedia.&amp;nbsp; Last modified November 10th, 2010.&amp;nbsp; Accessed November 23rd, 2010. http://en.wikipedia.org/wiki/Net_neutrality &lt;br /&gt;
8&amp;nbsp; Hart, Jonathan D. (2007). Internet Law. BNA Books. p.&amp;nbsp;750.&amp;nbsp; (Referenced in 7).&lt;br /&gt;
9.&amp;nbsp; Andrews, Tim.&amp;nbsp; “Does ‘Net Neutrality’ Violate the First Amendment?”&amp;nbsp; Americans for Tax Reform.&amp;nbsp; Posted November 11th, 2009.&amp;nbsp; Accessed November 23rd, 2010. http://www.atr.org/net-neutrality-violate-first-amendment-a4189 &lt;br /&gt;
10.&amp;nbsp; Majoras, Deborah et al.&amp;nbsp; “Broadband Competition Policy.”&amp;nbsp; FTC Staff Report June 2007.&amp;nbsp; Accessed November 23rd, 2010. http://www.ftc.gov/reports/broadband/v070000report.pdf &lt;br /&gt;
11.&amp;nbsp; Solomon, David H. et al.&amp;nbsp; “In the Matter of Madison River Communications, LLC. And Affiliated Companies.”&amp;nbsp; Federal Communications Commission.&amp;nbsp; Accessed November 23rd. http://hraunfoss.fcc.gov/edocs_public/attachmatch/DA-05-543A2.pdf&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-3656492608012539186?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/a-NLpdke2WVsSPdTH2Swo_H4SzU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a-NLpdke2WVsSPdTH2Swo_H4SzU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/a-NLpdke2WVsSPdTH2Swo_H4SzU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a-NLpdke2WVsSPdTH2Swo_H4SzU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/X5YkNAxya2o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/3656492608012539186/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2010/11/net-neutrality-summary.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/3656492608012539186?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/3656492608012539186?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/X5YkNAxya2o/net-neutrality-summary.html" title="Net Neutrality Summary" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2010/11/net-neutrality-summary.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIAR3g5cCp7ImA9Wx5aGEU.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-2210439117820406447</id><published>2010-11-15T22:49:00.000-07:00</published><updated>2010-11-15T22:49:06.628-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-15T22:49:06.628-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="C" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="C++" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>An n^n algorithm (or a surefire way to freeze up your memory lickety-split)</title><content type="html">&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; So one of my friends and I were talking about algorithm analysis and tried to think up a quick and dirty n^n algorithm (that is, one which grows on a more than factorial order) and this is what we came up with.&amp;nbsp; Be forewarned:&amp;nbsp; Calling this function with an argument of more than 30 is likely to eat all your memory (on the school computer we tried it on we got a BSOD.&amp;nbsp; Wheeeeee!)&lt;br /&gt;
&lt;br /&gt;
void int sum(int n)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //base case&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(n == 0)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int sum = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int i = 0; i &amp;lt; n; i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sum += sum(i);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return sum;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
This is like the fibonacci series on crack (in terms of the call hierarchy), though it ends up falling into a pattern of simply doubling.&amp;nbsp; You get a slightly more interesting pattern by switching the initialization of sum from 0 to n, but the main point here is to maximize the number of operations in as little code as possible without generating an infinite loop.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-2210439117820406447?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/u7Lay-xqYxGP01pxgPbD_3pvlqM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u7Lay-xqYxGP01pxgPbD_3pvlqM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/u7Lay-xqYxGP01pxgPbD_3pvlqM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u7Lay-xqYxGP01pxgPbD_3pvlqM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/l-bEn5GxJ-4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/2210439117820406447/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2010/11/nn-algorithm-or-surefire-way-to-freeze.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/2210439117820406447?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/2210439117820406447?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/l-bEn5GxJ-4/nn-algorithm-or-surefire-way-to-freeze.html" title="An n^n algorithm (or a surefire way to freeze up your memory lickety-split)" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2010/11/nn-algorithm-or-surefire-way-to-freeze.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4HRnk-fSp7ImA9Wx5bFUQ.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-1276967058543080970</id><published>2010-11-01T01:35:00.000-06:00</published><updated>2010-11-01T01:35:37.755-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-01T01:35:37.755-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Security" /><category scheme="http://www.blogger.com/atom/ns#" term="politics" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Voting Machine Security (CMPT 335 Assignment 9)</title><content type="html">&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:OfficeDocumentSettings&gt;   &lt;o:AllowPNG/&gt;  &lt;/o:OfficeDocumentSettings&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:TrackMoves/&gt;   &lt;w:TrackFormatting/&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:DoNotPromoteQF/&gt;   &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:LidThemeAsian&gt;JA&lt;/w:LidThemeAsian&gt;   &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:SplitPgBreakAndParaMark/&gt;    &lt;w:EnableOpenTypeKerning/&gt;    &lt;w:DontFlipMirrorIndents/&gt;    &lt;w:OverrideTableStyleHps/&gt;    &lt;w:UseFELayout/&gt;   &lt;/w:Compatibility&gt;   &lt;m:mathPr&gt;    &lt;m:mathFont m:val="Cambria Math"/&gt;    &lt;m:brkBin m:val="before"/&gt;    &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;    &lt;m:smallFrac m:val="off"/&gt;    &lt;m:dispDef/&gt;    &lt;m:lMargin m:val="0"/&gt;    &lt;m:rMargin m:val="0"/&gt;    &lt;m:defJc m:val="centerGroup"/&gt;    &lt;m:wrapIndent m:val="1440"/&gt;    &lt;m:intLim m:val="subSup"/&gt;    &lt;m:naryLim m:val="undOvr"/&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267"&gt;   &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;   &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;   &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;   &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;   &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;   &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;   &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;   &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;   &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;   &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;   &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;   &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;   &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;
 /* 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:0in 5.4pt 0in 5.4pt;
 mso-para-margin-top:0in;
 mso-para-margin-right:0in;
 mso-para-margin-bottom:10.0pt;
 mso-para-margin-left:0in;
 line-height:115%;
 mso-pagination:widow-orphan;
 font-size:11.0pt;
 font-family:"Calibri","sans-serif";
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:minor-latin;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt; &lt;![endif]--&gt;  &lt;br /&gt;
&lt;div align="center" class="MsoNormal" style="line-height: normal; text-align: center;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt;"&gt;Security in the Ballot Box - Issues with Electronic Voting Machines (Part A &amp;amp; B)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;For this assignment I decided to look into the recent allegations of voting machine malfunctions in Las Vegas. &lt;span&gt;&amp;nbsp;&lt;/span&gt;I would like to begin by giving a brief summary of events according to local newspapers and accounts.&lt;span&gt;&amp;nbsp; &lt;/span&gt;I should like to follow up with some information about the particular voting machine used and any relevant security concerns having to do with the specific machine.&lt;span&gt;&amp;nbsp; &lt;/span&gt;This essay will end on my thoughts on the issue -- whether it is being handled effectively, whether it will affect the upcoming election, and so on.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;According to some early voters in Boulder City, Nevada, before getting a chance to cast their ballots the voting machines already had Democrat Harry Reid’s name selected.&lt;span&gt;&amp;nbsp; &lt;/span&gt;It’s not clear if this was already selected as a default (and could be changed) or whether the printed paper ballot would force a vote for Mr. Reid.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Election officials claim that their poll workers have heard no complaints on the matter.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Furthermore Mr. Lemox (the Registrar) claims such malfunctions are impossible, given the technology being used.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;While the model of voting machine went unmentioned in the mass media articles, according to an article on truthout.com the model in question is the Sequioa AVC Edge, which is apparently secure enough to emulate pac-man on – without removing the tamper-evident seals, even.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Now, whether Sequoia has updated their model to be more secure now (and whether truthout’s information on which model is being used is credible) I do not know.&lt;span&gt;&amp;nbsp; &lt;/span&gt;But, the information taken at face value certainly fails to inspire confidence in the security of Nevada voting.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Furthermore, the New Jersey’s Center for Information Age Technology ran a number of tests on this particular model, and while functionality passed most of the criteria given by the State Attorney General, there are some interesting exceptions mentioned.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Specifically of note is that the machine’s paper ballot printer needs to be refilled about once every 120 voters, it doesn’t keep a log of when the paper is refilled, and during a refill, the stored paper ballots are accessible and subject to tampering.&lt;span&gt;&amp;nbsp; &lt;/span&gt;All of this leads to a number of conclusions, few of them reassuring.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;While the machines have no apparent defect in and of themselves, it seems like they are relatively easily hacked into and reprogrammed.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Even regular maintenance allows stored votes to be at risk.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Given that, it is not hard to believe it possible that the allegations made about machines set up to cast votes for the Democrat by default may be true.&lt;span&gt;&amp;nbsp; &lt;/span&gt;And, if these are indeed the voting systems in use, it seems Mr. Lemox and other state officials seem to have jumped the gun a bit in declaring these machines inviolable.&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="line-height: 200%; text-align: center;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;References:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;German, Jeff.&lt;span&gt;&amp;nbsp; &lt;/span&gt;“Audit Resolves Voting Irregularity Questions.”&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;i&gt;Las Vegas Review-Journal&lt;/i&gt;.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Oct. 28, 2010.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Accessed Oct. 30&lt;sup&gt;th&lt;/sup&gt;, 2010. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.lvrj.com/news/audit-resolves-questions-of-irregularities-105990348.html"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;http://www.lvrj.com/news/audit-resolves-questions-of-irregularities-105990348.html&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt; .&lt;br /&gt;
&lt;br /&gt;
“County Denies Voting Machine Malfunction Claims” &lt;i&gt;Fox 5 News, Las Vegas&lt;/i&gt;. &lt;span&gt;&amp;nbsp;&lt;/span&gt;Oct. 26, 2010.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Accessed Oct. 30&lt;sup&gt;th&lt;/sup&gt;, 2010&lt;i&gt; &lt;/i&gt;&lt;/span&gt;&lt;a href="http://www.fox5vegas.com/news/25524494/detail.html"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;http://www.fox5vegas.com/news/25524494/detail.html&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt; .&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;Friedman, Brad.&lt;span&gt;&amp;nbsp; &lt;/span&gt;“Hacking Harry Reid (or Sharron’s Angle).”&lt;span&gt;&amp;nbsp; &lt;/span&gt;Oct. 26, 2010.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Accessed Oct. 30&lt;sup&gt;th&lt;/sup&gt;, 2010.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.truth-out.org/hacking-harry-reid-or-sharrons-angle64548"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;http://www.truth-out.org/hacking-harry-reid-or-sharrons-angle64548&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;Feldman, Ariel J and J. Alex Halderman.&lt;span&gt;&amp;nbsp; &lt;/span&gt;“PAC-MAN on the Sequoia AVC-Edge DRE voting machine.”&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.cse.umich.edu/%7Ejhalderm/pacman/"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;http://www.cse.umich.edu/~jhalderm/pacman/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;“Report to the Office of the Attorney General:&lt;span&gt;&amp;nbsp; &lt;/span&gt;Sequoia AVC Edge Voter-verified Paper Record System Assessment.”&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;i&gt;New Jersey Institute of Technology Center for Information Age Technology&lt;/i&gt;.&lt;span&gt;&amp;nbsp; &lt;/span&gt;July 2007.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Accessed Oct. 30&lt;sup&gt;th&lt;/sup&gt;, 2010.&lt;i&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;a href="http://nj.gov/state/elections/Hearing-Reports-7.07/NJIT-Edge-report-7.07.pdf"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;http://nj.gov/state/elections/Hearing-Reports-7.07/NJIT-Edge-report-7.07.pdf&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="line-height: 200%; text-align: center;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;(B) Impressions on technology in voting&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;As long as I can remember, I have read articles and watched television news around election time, detailing stories of voter fraud or election fraud of one type or another.&lt;span&gt;&amp;nbsp; &lt;/span&gt;So, I would like to detail a few recurring threads that always seem to come to the fore around voting time (well, my personal experiences and impressions anyway) and discuss whether or not technology has improved these things.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;First of all, I would like to point out that doubts and worries over the accuracy of ballot counts long predate their automation.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Whether you are reading Horace Greeley’s accounts about the corrupt Democrat machine in the 1800s, or about voter intimidation in the South during and after the Jim Crow era (where the Klu Klux Klan tried to force everyone to vote Democrat)... such concerns are hardly limited to the computer era.&lt;span&gt;&amp;nbsp; &lt;/span&gt;In more recent history, the Helping Americans Vote Act of 2002 essentially budgeted something in the neighborhood of $2 billion of federal funds to improve many counties’ electoral systems.&lt;span&gt;&amp;nbsp; &lt;/span&gt;This lead to the widespread use of electronic voting machines, digitized voter registration databases, and was aimed at preventing a repeat of the 2000 presidential election in Florida (where so-called ‘butterfly ballots’ supposedly led to voter confusion and a long cycle of recounts were finally put to an end by a Supreme Court decision).&lt;span&gt;&amp;nbsp; &lt;/span&gt;Did this harm or help the accuracy of our voting system?&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 200%;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; line-height: 200%;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;The cynical side of me wants to say it ultimately accomplished nothing.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Whether it’s the aforementioned issues in Las Vegas, or the odiously suspicious election of Al Franken in Minnesota a year or two ago, it all comes down to how much we trust the poll workers to honestly and competently count the ballots at the end of the day.&lt;span&gt;&amp;nbsp; &lt;/span&gt;It’s ultimately the same question whether we’re asking them to manually count those votes, or to provide physical security to prevent the hacking of voter machines.&lt;span&gt;&amp;nbsp; &lt;/span&gt;On the bright side, it has made the poll workers life easier, in that the counting is automated, now.&lt;span&gt;&amp;nbsp; &lt;/span&gt;And for the voter, a touch screen is easy to use, and certainly less annoying than butterfly ballots.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Though, in turn, voting machines are more expensive to buy and maintain than, say, marking down your vote with pen and paper.&lt;span&gt;&amp;nbsp; &lt;/span&gt;And, if environmentalism is your fetish of choice, the requirement of printing out each ballot for extra verification means you’re not really saving on paper.&lt;span&gt;&amp;nbsp; &lt;/span&gt;So, all in all, I have to say the computerization of voting has made things easier in some ways, but also more expensive and just as subject to suspicion.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-1276967058543080970?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YT0w7MwX0pRc5Is5fieZFAM0M_o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YT0w7MwX0pRc5Is5fieZFAM0M_o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YT0w7MwX0pRc5Is5fieZFAM0M_o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YT0w7MwX0pRc5Is5fieZFAM0M_o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/3z1kKzRJEXw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/1276967058543080970/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2010/11/voting-machine-security-cmpt-335.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/1276967058543080970?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/1276967058543080970?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/3z1kKzRJEXw/voting-machine-security-cmpt-335.html" title="Voting Machine Security (CMPT 335 Assignment 9)" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2010/11/voting-machine-security-cmpt-335.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04MR3g7fSp7ImA9Wx5WE00.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-4353549220955446832</id><published>2010-09-23T23:26:00.000-06:00</published><updated>2010-09-23T23:26:26.605-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-23T23:26:26.605-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="RSA" /><category scheme="http://www.blogger.com/atom/ns#" term="Cryptography" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="GPG" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Security" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>GNU Protection Guard Public Key</title><content type="html">Just in case you ever wanted to send me coded messages via RSA encryption, the following is my public key:&lt;br /&gt;
&lt;br /&gt;
-----BEGIN PGP PUBLIC KEY BLOCK-----&lt;br /&gt;
Version: GnuPG v1.4.10 (MingW32)&lt;br /&gt;
&lt;br /&gt;
mQINBEycKnkBEADWpbvu5NwVMHTf6Sncg4UX5ffWV2c9F4XU5vflDh9IbuTvgowz&lt;br /&gt;
uAD9nKbZid3d3sU1jzb5iKp9ddJ7QyhnS3xF3kwDUWj999GnwCsKH/4YRGEx6pTk&lt;br /&gt;
J9dYGD4UhcRSUylUDfWVhu5zRhsQ+7lJ+yOxvzto9d3T32tZm0KIT8hCNTP9Rdm7&lt;br /&gt;
iDqtMahvF59UKUt3UWBRbTXgPiDDdFQ5BMsVY+vbF836bqogHrk9HiPUvpLN47tx&lt;br /&gt;
NRkQCGKAIzDwXCc618mOeqUW0ohOGznOIyJR4xPUD6Kd5ot/hlAOqMGh8tN4BfjF&lt;br /&gt;
H3zqat3pLT0IVL4byX6qV5r4ilm4end/0tXwd+S/qnjMyYH3V8ifC7wOB5ZwWLbZ&lt;br /&gt;
FKE0rp6+O9waj6OvT2nx5fwM9/JmRuppRq2wwiBuxfmg8P+sENKu+WMqSzUGHlat&lt;br /&gt;
THNhZl48lca5YHw5g4lBZkJW5joy8gO4LYJC1LPFn+3OV9z2Ey5QQA59md905Nox&lt;br /&gt;
XRwA16qREgJ3I5VB+OJNNzG5CpUWMky7J043wvq6CKFpkPhbqeCzsVeFGsMTqxV9&lt;br /&gt;
++nzc1XKhnZUJNMzJkSFw15IFW2LG3o3sKrBza8lK1Xbchok7GwLzjbKsqRvIZLE&lt;br /&gt;
6gQsp3yEZe5vQSnu+0Tre2rUbstssQNPOyhaHoGRFgabz+Weu3zfS8r/FwARAQAB&lt;br /&gt;
tEBEYW5pZWwgVGFubmVyIChFbCBRdWVzbyBHcmFuZGUpIDxkanQxMjE2QHdlc3Rt&lt;br /&gt;
aW5zdGVyY29sbGVnZS5lZHU+iQI4BBMBAgAiBQJMnCp5AhsDBgsJCAcDAgYVCAIJ&lt;br /&gt;
CgsEFgIDAQIeAQIXgAAKCRB+8Nnl2qMm5xvuD/4p3X9YRj2AOPDpqNWnC9UW+lir&lt;br /&gt;
ylxDeXYTXeJqlkRKV3hZEYmv8A6/I0uGTCNIKqIPZ7f+WbkOiH+q2SFQYFgL6Xhz&lt;br /&gt;
x/7MyQCUgAtKkxbaXiynxySoqouK2REroNn2p+gFNvrPXHAG/Ne3qcjsRGqmDvPN&lt;br /&gt;
cRRWoZYcqSjy1MBJvis8L24fUfEmArJCm7CYWoR7HR5W1XkQ1chloYTj9DGXrmXf&lt;br /&gt;
1jChC5Tl+Rj3iCJBYh9z5+K3s1O9z3kRU+4aJnMOLW9uXJmudHiHDhUlHtUSwicv&lt;br /&gt;
1lktIgqaM17KQczlkla1BWy/v9E8in84U0aJfXvKzIEskQMjwunoLR3LCMVWNX0t&lt;br /&gt;
8FLVScf7zvgGcLh0wP7UFkriWdqcw8Nge1K0pfQ7JYF5OEyueZJGrLzDTwPGMRwj&lt;br /&gt;
hGTRVLcZS5yo1OMAoZFQ7QjK8haW9Ek2DAPhHnUn+ukNyrKHs84DjNg//nuI1TYI&lt;br /&gt;
h/OTrX2u/a25MCvDbwDTXL8B4423CLlUnAwsU6KDCCDpC7rK9uZUDQ+SFG6h/K/q&lt;br /&gt;
LrxM5V21CsNoFe5VK0AYXJ7nD5JE/fD1oazTAW0USxC1YF6oHZyaZm3AwCb4sprF&lt;br /&gt;
0tt2o97hVEK/iaBpmpnb8YX8Q2QY2d6rPwW5eqxc40zZruKM655GsVlY6R3SLwjF&lt;br /&gt;
Dsu4DEH3+jfqHJmSYrkCDQRMnCp5ARAA3shSrlSnuRIKWRgWtLLPPjwKwC4G5jff&lt;br /&gt;
RpbFyhm8N4ggZndY0uy4ozBI72Rls/m/VPRb2/IhAtyOKMNmRrxhPVZzE2zVAM1l&lt;br /&gt;
b15RY2moxBGQieFg0xeWlMOyqy+CGx0NFXC9LKsi2ZlzKthY7r5ck707ZTcSfArA&lt;br /&gt;
JABopXKyCLUyFxMMSx8kyKAgWd6TKXlg6oBWAg4EdDyKoyvUN26Xpe5k3W8sIJ0u&lt;br /&gt;
oUZ3Xze+4kN3a1Rw1b4vq/B6leXLEJ3XFcp+G4vEVVS54tE1pDfggDtorC8QYRgl&lt;br /&gt;
PYTFUg2V/8mk/+PE9mXRgtyMqGWcdIuD/bvrnFxF/R2TPvhOn4YJdMQcO+FSj6D0&lt;br /&gt;
MTnzV4vabKbRpb+jvRvcL/j7935G6hfKD7K1hoi0gDXtWiZz550FvlAAqpCT4Pxk&lt;br /&gt;
qCDcwJvd677L69E2r9unkc4PpXItqRpcCgVOWU6sI7RrijyzSK6zIvHzFp+Tc5eQ&lt;br /&gt;
SNSP6/Qvpc/Qhw/Cik+gUiyVkAx5KqW0itKd1wC0dr+r9Gt0feTfdA+PHh97trtv&lt;br /&gt;
TymaW+2vO0ns/oUGU2s5hqCeNZ75svf2pKnoNlwRGVnyxQaYRd5Ok0+sMIsCFoYJ&lt;br /&gt;
kf2oMEmiEcMN6+ybkeVp/QDVIdWnuNTNlorEMLLt5S8iD6tFGxFCNOVmqAYTJurG&lt;br /&gt;
upRXf7RwGIcAEQEAAYkCHwQYAQIACQUCTJwqeQIbDAAKCRB+8Nnl2qMm528SD/9h&lt;br /&gt;
papabz4QBDdL8IvVxD8yesKJO6tQH1PYB+RIyRv8SyMOCpoTr4jNCvn2mgS9ayDg&lt;br /&gt;
7Xg+RgVRNsTfTm+fgxybiJYSh3Y9XcGWK7V33wGRp5uoq+l21xoSRXs2xGFyqWTo&lt;br /&gt;
h8h9qvtKCkP1XNrifaqmr4ma31HXw2IePRVQwC0R7BJnp2BwhN7kMF5a3sx2OZ8k&lt;br /&gt;
EtcJF5gMXpyX5F3ECq0VTHW/SipAYWZ4O6LA0sDWKicwVRa4XCe4tgi/f3l+q3x2&lt;br /&gt;
WbBqXYpBj+jNkVyVvr2dThZ6fQ4KUWFDN38IQtNvP91aAmsyHPQxL8YwKGMlCPfK&lt;br /&gt;
qBygAXq/yiB5zWKFQJTsFrb/BLQjJNFqhKNSujxs8U2D8ZtPER6QEFiw5yxFNEnF&lt;br /&gt;
Jj8b2dsZKhaGAHfUCMFPFvqcBapLidclDtMHxAwkDeh2kTqPQMfEIeBkXP/u/Qe6&lt;br /&gt;
81QZXS+kzkZY3Ce3PcQVDqVKob6XhmSWWbtHNEWfjKyD1/xzfzReaAeMBgm64/Fv&lt;br /&gt;
6GoXPDj7OzFCxNtCGCfxrYsMw5VwRCWaX70bj/lDEtSIjoE1gkfrTXv9RKsCPM1n&lt;br /&gt;
Yz/gkijQb2XtW/5QkCNOJAe5HQEosXNarv6SVFN+3dZymYdfZggqt/tru5JjJeSQ&lt;br /&gt;
ISyfa8D/Q6Du+3dXz5c+bQUXk//7EfQA6aC2XwX2OA==&lt;br /&gt;
=yUP0&lt;br /&gt;
-----END PGP PUBLIC KEY BLOCK-----&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-4353549220955446832?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/D62UQfFLSfeWpua2Wokp1h8l2ek/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D62UQfFLSfeWpua2Wokp1h8l2ek/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/D62UQfFLSfeWpua2Wokp1h8l2ek/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D62UQfFLSfeWpua2Wokp1h8l2ek/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/KK6fVMeDtBY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/4353549220955446832/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2010/09/gnu-protection-guard-public-key.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/4353549220955446832?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/4353549220955446832?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/KK6fVMeDtBY/gnu-protection-guard-public-key.html" title="GNU Protection Guard Public Key" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2010/09/gnu-protection-guard-public-key.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QHRX45eSp7ImA9Wx5RFU0.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-5545272711985196126</id><published>2010-08-22T00:12:00.001-06:00</published><updated>2010-08-22T12:22:14.021-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-22T12:22:14.021-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="philosophy" /><category scheme="http://www.blogger.com/atom/ns#" term="essays" /><category scheme="http://www.blogger.com/atom/ns#" term="politics" /><title>Are Morals Axiomatic or Can We Reach Them Via Reason Alone?</title><content type="html">&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Today I should like to explore what I think is a failing of Rational Constructivism (the theorists of which refer to themselves as "anti-moralists); that we ought to only do those things we can reason out an explanation for, and avoid making decisions as to how to act based on &lt;i&gt;base and vulgar&lt;/i&gt; superstition.&amp;nbsp; So what is the failing with this belief?&amp;nbsp; Well, where do you start reasoning from?&amp;nbsp; Since the topic is morality, let's take an appropriate question and see how Christian philosophy explains it and then see how Rational Constructivism answers it.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Is murder wrong?&amp;nbsp; Why?&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Christian philosophy would answer this in a seemingly simplistic way -- that yes, it's wrong to murder because, essentially, the Bible tells us so.&amp;nbsp; If we are to take C. S. Lewis' anecdotal "common sense" approach, this is further backed up by nigh-instinctual human feelings, some specific "sense" almost akin to the physical ones, that is consistent and standard across humanity (and 'sense' seems to be a good analogy as some people seem to have relatively strong, weak, or no morality at all, much as each man's quality of sight and sound are rather relative).&amp;nbsp; More to the point, murder is wrong because the 10 commandments forbid it and Jesus' Golden Rule (under which all actions should be measured) says, "Do unto others as you would have them do unto you;" most of us would prefer not to be murdered, so in following this rule we do not in turn murder.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rationalists seem to find such an explanation insulting -- they would equate it to submitting oneself to, again, &lt;i&gt;base and vulgar&lt;/i&gt; superstition; not doing one's own thinking.&amp;nbsp; Surely, an intellectual would have a more dignified explanation where belief is not an issue in complying...right?&amp;nbsp; To paraphrase a response I got from this inquiry, "Yes, because it does harm."&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; So apparently, I've been had.&amp;nbsp; I thought this guy was a rationalist and an atheist, yet here he is, adopting a moral that says "do no harm" as an axiom.&amp;nbsp; I asked "and why should we do no harm?" but he said he had already answered my question and intimated that further questioning was a sign of obstinacy on my part.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Must we be left to our own to determine how a true Rational Constructivist would frame his argument?&amp;nbsp; I suppose we shall have to make as honest an attempt as can be made; and do correct me if the following conjecture mischaracterizes in any way, shape, or form, the philosophies of pure rationalism.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Plato put forward one tool we might use:&amp;nbsp; "Act for the greater good."&amp;nbsp; But then, what is the greater good?&amp;nbsp; If we deign to turn to the public opinion on the matter -- assuming that surely, the public must know what's in their best interests, right? -- we get an inconsistent set of answers which varies temporally and regionally.&amp;nbsp; You might think inflicting pain was bad, right?&amp;nbsp; Not always -- De Sade, Sartre, and any number of ascetics (especially Buddhists) seem to value pain and suffering.&amp;nbsp; Of course, even had we found a consistent public opinion which held sway, we would then be left with the issue of explaining why the public opinion should form an axiom from which to build our arguments.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Insomuch as most Rationalists tend to view themselves as men of science, which consists largely of divining how things work by observation and experiment, we ought to expect them to abhor sophistry and relativism since neither mathematics nor science work without some basic qualities of consistency and immutability.&amp;nbsp; (For example, if we define ourselves some numerical representations for counting in base ten, 1 + 1 should always be 2; it can't sometimes be 3 and sometimes be 0).&amp;nbsp; But yet, that seems to be what we're left with with a purely Rational approach.&amp;nbsp; We cannot apparently conclude what is good and what is bad without adopting some axiom on its face value.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-5545272711985196126?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jmxEGc19Y_w8HHBpZefj__OmEas/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jmxEGc19Y_w8HHBpZefj__OmEas/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jmxEGc19Y_w8HHBpZefj__OmEas/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jmxEGc19Y_w8HHBpZefj__OmEas/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/CBcTWP5aRLU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/5545272711985196126/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2010/08/are-morals-axiomatic-or-can-we-reach.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/5545272711985196126?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/5545272711985196126?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/CBcTWP5aRLU/are-morals-axiomatic-or-can-we-reach.html" title="Are Morals Axiomatic or Can We Reach Them Via Reason Alone?" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2010/08/are-morals-axiomatic-or-can-we-reach.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQHRn0_cCp7ImA9WxFbEk8.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-2843960685782784313</id><published>2010-06-17T00:30:00.002-06:00</published><updated>2010-07-04T00:52:17.348-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-04T00:52:17.348-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Chaos Theory" /><category scheme="http://www.blogger.com/atom/ns#" term="economics" /><category scheme="http://www.blogger.com/atom/ns#" term="philosophy" /><category scheme="http://www.blogger.com/atom/ns#" term="history" /><category scheme="http://www.blogger.com/atom/ns#" term="essays" /><category scheme="http://www.blogger.com/atom/ns#" term="politics" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Passing Thought: Applying Computer Science Theory to Economic Theory</title><content type="html">&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; So I have been reading &lt;u&gt;&lt;a href="http://www.amazon.com/Fatal-Conceit-Errors-Socialism-Collected/dp/0226320669?ie=UTF8&amp;amp;tag=metzsmean-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;The Collected Works of F. A. Hayek Volume 1:&amp;nbsp; The Fatal Conceit - The Errors of Socialism&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=metzsmean-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0226320669" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;&lt;/u&gt;.&amp;nbsp; Haven't quite finished the first chapter, even but it brought some interesting thoughts that I wanted to write down before I forgot them.&lt;br /&gt;
&lt;br /&gt;
-- Hayek makes a reference back to &lt;a href="http://www.amazon.com/Wealth-Nations-Adam-Smith/dp/1420932063?ie=UTF8&amp;amp;tag=metzsmean-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Adam Smith&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=metzsmean-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1420932063" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt;'s discussion of basic supply and demand, "the invisible hand" and all... I got to thinking, maybe one of the reasons our economy does so well at what it does (with pricing serving as an indicator that serves to automatically adjusts supply and demand to prevent overproduction and overconsumption) is essentially a form of information hiding and modularity.&lt;br /&gt;
&lt;br /&gt;
I suppose I should explain those terms.&amp;nbsp; Information hiding is best explained in terms of functions and arguments.&amp;nbsp; For a programmer, when you're making use of another programmer's function, your usual concern is what the function returns and what arguments are required in what order.&amp;nbsp; If you should decide to tool around with this other programmer's code without understanding how and why he programmed it the way he did, you will almost certainly end up with a function that is less efficient - and worse, you may break the function altogether.&amp;nbsp; Thus, there is a need to prevent the first programmer from changing the second programmer's code.&amp;nbsp; I won't bore you with the variety of methods how you might go about this in an object-oriented context, but I think you get the concept.&lt;br /&gt;
&lt;br /&gt;
Modularity fits along the same lines -- basically it's the concept of breaking up a program from one big "main" function into a bunch of smaller ones; each usually accomplishing a very simple, easy-to-define task.&amp;nbsp; Under these circumstances it is &lt;i&gt;much&lt;/i&gt; easier to debug a malfunctioning program because you can usually narrow down the function that is problematic and fix it accordingly.&lt;br /&gt;
&lt;br /&gt;
Now, how does this all fit in with economics?&amp;nbsp; Well in early times, and even today, the consumer rarely knows how a particular product arrived at a given store.&amp;nbsp; He usually doesn't know how it was manufactured, sometimes he doesn't even know all the contents!&amp;nbsp; My thought is this: what if this not knowing is part of &lt;i&gt;why&lt;/i&gt; our market system works so well?&amp;nbsp; And if &lt;i&gt;that&lt;/i&gt; is so, isn't it all the more reason command economies (such as Socialism/Fascism/Communism/Mercantilism/Absolutism/etc) rarely if ever produce positive results (nevermind trying to get results &lt;i&gt;better&lt;/i&gt; than what the market system provides)?&lt;br /&gt;
&lt;br /&gt;
Let me know in the comments what you think of the idea. -- I'll go back to reading.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-2843960685782784313?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gQc2tnpkFLZi7MVqwLPdcSbyofc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gQc2tnpkFLZi7MVqwLPdcSbyofc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gQc2tnpkFLZi7MVqwLPdcSbyofc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gQc2tnpkFLZi7MVqwLPdcSbyofc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/LtcOtfmeMPs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/2843960685782784313/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2010/06/passing-thought-applying-computer.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/2843960685782784313?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/2843960685782784313?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/LtcOtfmeMPs/passing-thought-applying-computer.html" title="Passing Thought: Applying Computer Science Theory to Economic Theory" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2010/06/passing-thought-applying-computer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cBSXc5cSp7ImA9WxFVFks.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-2560880125417584581</id><published>2010-06-16T00:15:00.004-06:00</published><updated>2010-06-16T00:17:38.929-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-16T00:17:38.929-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Chaos Theory" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="Shinies" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>Iterated Circles - Mod of Sierpenski Square program</title><content type="html">/* CMPT 300X&amp;nbsp; Chaos&amp;nbsp; Working with Fractals: Iterated Circle&lt;br /&gt;
&amp;nbsp;* &lt;br /&gt;
&amp;nbsp;* rewrite of Sierpinski Square code to iterate a circular fractal&lt;br /&gt;
&amp;nbsp;Author: Daniel Tanner&lt;br /&gt;
&amp;nbsp;*Note you can mess around with the code here a bit to avoid printing circles inside each other to generate a different fractal pattern (which I kinda like better but... eh).&lt;br /&gt;
&amp;nbsp;*/&lt;br /&gt;
&lt;br /&gt;
import javax.swing.JFrame;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //imports for the frame&lt;br /&gt;
import java.awt.*;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //imports the colour&lt;br /&gt;
import java.awt.Graphics;&amp;nbsp;&amp;nbsp;&amp;nbsp; //imports the graphics&lt;br /&gt;
import java.util.Random;&amp;nbsp; // imports the random class for random colour&lt;br /&gt;
&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
&lt;br /&gt;
public class IteratedCircle extends JPanel&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; public Graphics g;&lt;br /&gt;
&amp;nbsp; public Color c =Color.WHITE; // set colour to white to create the blanks&lt;br /&gt;
&amp;nbsp; public Random r = new Random();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp; public static void main (String[]args)&lt;br /&gt;
&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JFrame SS = new JFrame("Drawing with Recursion");&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SS.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SS.setVisible(true);&amp;nbsp;&amp;nbsp; //Show the first drawing.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IteratedCircle S = new IteratedCircle();&amp;nbsp; //call default constructor (not written);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SS.setBackground(Color.BLACK);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SS.add(S);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SS.setSize(500, 500);&amp;nbsp; //(width ,height )&amp;nbsp;&amp;nbsp; */ &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; //new SFrame();&amp;nbsp; // call to the frame, program&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; public void paint(Graphics g)&lt;br /&gt;
&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; this.g = g;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // start recursion with first call to draw square&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; drawCircle( getWidth() / 2, getHeight() / 2, getWidth() / 4);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; private void drawCircle ( int x, int y ,int radius)&lt;br /&gt;
&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (radius &amp;gt; 3) //control when to stop: when size is 2x2 pixels&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g.setColor(new Color((int)(Math.random() * 255), (int)(Math.random() * 255), (int)(Math.random() * 255)));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //random colour (default is white)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g.drawRoundRect(x - radius / 2, y - radius / 2, radius, radius, radius * radius, radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawCircle((int)(x + radius * .75), y, radius / 2);&amp;nbsp; //draws and fill the square, bigger one&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawCircle((int)(x - radius * .75), y, radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawCircle(x, (int)(y + radius * .75), radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawCircle(x, (int)(y - radius * .75), radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //repaint();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; private void drawUpCircle( int x, int y ,int radius)&lt;br /&gt;
&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (radius &amp;gt; 1) //control when to stop: when size is 2x2 pixels&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; g.setColor(new Color((int)(Math.random() * 255), (int)(Math.random() * 255), (int)(Math.random() * 255)));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //random colour (default is white)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g.drawRoundRect(x - radius / 2, y - radius / 2, radius, radius, radius * radius, radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawUpCircle(x, (int)(y + radius * .75), radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawRightCircle((int)(x + radius * .75), y, radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawLeftCircle((int)(x - radius * .75), y, radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //repaint();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; private void drawDownCircle( int x, int y ,int radius)&lt;br /&gt;
&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (radius &amp;gt; 1) //control when to stop: when size is 2x2 pixels&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; g.setColor(new Color((int)(Math.random() * 255), (int)(Math.random() * 255), (int)(Math.random() * 255)));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //random colour (default is white)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g.drawRoundRect(x - radius / 2, y - radius / 2, radius, radius, radius * radius, radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawDownCircle(x, (int)(y - radius * .75), radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawRightCircle((int)(x + radius * .75), y, radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawLeftCircle((int)(x - radius * .75), y, radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //repaint();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; private void drawLeftCircle( int x, int y ,int radius)&lt;br /&gt;
&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (radius &amp;gt; 1) //control when to stop: when size is 2x2 pixels&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; g.setColor(new Color((int)(Math.random() * 255), (int)(Math.random() * 255), (int)(Math.random() * 255)));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //random colour (default is white)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g.drawRoundRect(x - radius / 2, y - radius / 2, radius, radius, radius * radius, radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawUpCircle(x, (int)(y + radius * .75), radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawDownCircle(x, (int)(y - radius * .75), radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawLeftCircle((int)(x - radius * .75), y, radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //repaint();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; private void drawRightCircle( int x, int y ,int radius)&lt;br /&gt;
&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (radius &amp;gt; 1) //control when to stop: when size is 2x2 pixels&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; g.setColor(new Color((int)(Math.random() * 255), (int)(Math.random() * 255), (int)(Math.random() * 255)));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //random colour (default is white)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g.drawRoundRect(x - radius / 2, y - radius / 2, radius, radius, radius * radius, radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawUpCircle(x, (int)(y + radius * .75), radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawRightCircle((int)(x + radius * .75), y, radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawDownCircle(x, (int)(y - radius * .75), radius / 2);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //repaint();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
}//end of class&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-2560880125417584581?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZsJCPFdzbEgP9tVt6SBKAXbk3VY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZsJCPFdzbEgP9tVt6SBKAXbk3VY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZsJCPFdzbEgP9tVt6SBKAXbk3VY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZsJCPFdzbEgP9tVt6SBKAXbk3VY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/3wBwDuNvWsc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/2560880125417584581/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2010/06/iterated-circles-mod-of-sierpenski.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/2560880125417584581?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/2560880125417584581?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/3wBwDuNvWsc/iterated-circles-mod-of-sierpenski.html" title="Iterated Circles - Mod of Sierpenski Square program" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2010/06/iterated-circles-mod-of-sierpenski.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8HR305cSp7ImA9WxFVFks.&quot;"><id>tag:blogger.com,1999:blog-7045744250558213198.post-7215587856940322247</id><published>2010-06-16T00:13:00.001-06:00</published><updated>2010-06-16T00:13:56.329-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-16T00:13:56.329-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Chaos Theory" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="Shinies" /><category scheme="http://www.blogger.com/atom/ns#" term="CS" /><category scheme="http://www.blogger.com/atom/ns#" term="Computer Science" /><title>The Dragon Curve</title><content type="html">/*&lt;br /&gt;
&amp;nbsp;* Author: Daniel Tanner&lt;br /&gt;
&amp;nbsp;* Dragon Curve Program&lt;br /&gt;
&amp;nbsp;* &lt;br /&gt;
&amp;nbsp;* This program runs a recursive program to keep replacing a given&lt;br /&gt;
&amp;nbsp;* string such as "f" with "f+h" and "h" with "f-h",&lt;br /&gt;
&amp;nbsp;*&amp;nbsp; and after a certain number of said recursions, translates that&lt;br /&gt;
&amp;nbsp;*&amp;nbsp; string into a physical display.&amp;nbsp; The result is known as the&lt;br /&gt;
&amp;nbsp;*&amp;nbsp; Dragon Curve.&lt;br /&gt;
&amp;nbsp;*/&lt;br /&gt;
&lt;br /&gt;
import java.awt.*;&lt;br /&gt;
import java.util.Random;&lt;br /&gt;
&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
&lt;br /&gt;
public class DragonCurve extends JPanel {&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;public Graphics g1;&lt;br /&gt;
&amp;nbsp;public Color c =Color.WHITE; // set colour to white to create the blanks&lt;br /&gt;
&amp;nbsp;public Random r = new Random();&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;public static double degToRad(int deg) { //degree to radian conversion&lt;br /&gt;
&amp;nbsp; return deg * Math.PI / 180;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;//paint method is automatically called for us by tree recursive (will be called 4 times! Once for each call to drawFractal&lt;br /&gt;
&amp;nbsp;public void paint(final Graphics g) {&lt;br /&gt;
&amp;nbsp; this.g1 = g;&lt;br /&gt;
&amp;nbsp; g1.setColor(c);&lt;br /&gt;
&amp;nbsp; int numRecursions = 14;&lt;br /&gt;
&amp;nbsp; double startAngle = degToRad(0);&lt;br /&gt;
&amp;nbsp; int distance = 3;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; //First call to do the drawing, this call draws the trunk: start(X,Y) at base, angle 0, len calculated)&lt;br /&gt;
&amp;nbsp; drawCurve(getWidth() / 2, getHeight() / 2, numRecursions, startAngle, distance);&amp;nbsp; //first call&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //System.out.println("in paint, number of calls to drawFractal is " + count +"\n");&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;//dragon curve method -- starts at the middle and applies rules to curve&lt;br /&gt;
&amp;nbsp;public void drawCurve(int x0, int y0, int numRecursions, double startAngle, int distance)&lt;br /&gt;
&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; String dragonString = "f";&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int i = 0; i &amp;lt; numRecursions; i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; String tempString = "";&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for(int j = 0; j &amp;lt; dragonString.length(); j++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; //replace the f with f + h&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(dragonString.charAt(j) == 'f')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tempString += "f-h";&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else if(dragonString.charAt(j) == 'h')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tempString += "f+h";&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tempString += dragonString.charAt(j);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dragonString = tempString;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(dragonString);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; //now draw the image&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int index = 0; index &amp;lt; dragonString.length(); index++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(dragonString.charAt(index) == 'f' || dragonString.charAt(index) == 'h')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; g1.setColor(new Color((int)(Math.random() * 255), (int)(Math.random() * 255), (int)(Math.random() * 255)));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //random colour (default is white)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int x1 = (int)(x0 + distance * Math.cos(startAngle));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int y1 = (int)(y0 + distance * Math.sin(startAngle));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; g1.drawLine(x0, y0, x1, y1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; x0 = x1; y0 = y1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else if(dragonString.charAt(index) == 'g')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; g1.setColor(new Color((int)(Math.random() * 255), (int)(Math.random() * 255), (int)(Math.random() * 255)));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //random colour (default is white)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int x1 = (int)(x0 + distance * Math.cos(startAngle));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int y1 = (int)(y0 + distance * Math.sin(startAngle));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; x0 = x1; y0 = y1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else if(dragonString.charAt(index) == '+')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; startAngle = startAngle - Math.PI / 2.0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else if(dragonString.charAt(index) == '-')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; startAngle = startAngle + Math.PI / 2.0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;//main method&lt;br /&gt;
&amp;nbsp;public static void main(String args[]) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; // System.out.println("count begins with at " + count +"\n");&lt;br /&gt;
&amp;nbsp; JFrame FF = new JFrame("Drawing the Dragon Curve");&lt;br /&gt;
&amp;nbsp; FF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
&amp;nbsp; FF.setVisible(true);&amp;nbsp;&amp;nbsp; //Show the first drawing.&lt;br /&gt;
&amp;nbsp; DragonCurve F = new DragonCurve();&amp;nbsp; //call default constructor (not written); F is the Tree.&lt;br /&gt;
&amp;nbsp; FF.setBackground(Color.BLACK);&lt;br /&gt;
&amp;nbsp; FF.add(F);&lt;br /&gt;
&amp;nbsp; FF.setSize(1000, 1000);&amp;nbsp; //(width 1200,height 1000)&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7045744250558213198-7215587856940322247?l=metzmeanderings.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-D0zp5FTXnNyMgo23s4O6ei6ddU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-D0zp5FTXnNyMgo23s4O6ei6ddU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-D0zp5FTXnNyMgo23s4O6ei6ddU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-D0zp5FTXnNyMgo23s4O6ei6ddU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MetzsMeanderings/~4/Z9sciFE_Gmo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://metzmeanderings.blogspot.com/feeds/7215587856940322247/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://metzmeanderings.blogspot.com/2010/06/dragon-curve.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/7215587856940322247?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7045744250558213198/posts/default/7215587856940322247?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MetzsMeanderings/~3/Z9sciFE_Gmo/dragon-curve.html" title="The Dragon Curve" /><author><name>Baron Metzengerstein</name><uri>http://www.blogger.com/profile/04544814866932657624</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://metzmeanderings.blogspot.com/2010/06/dragon-curve.html</feedburner:origLink></entry></feed>

