﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-有云的地方，就有天下。有人的地方，就有江湖。</title><link>http://www.cnblogs.com/edison1024/</link><description>脱谷为糠，其髓斯存，神之渭也。山骞不崩，唯百为镇，骨之谓也。
一身精神，具乎两目；一身骨相，具乎面部。

</description><language>zh-cn</language><lastBuildDate>Mon, 06 Oct 2008 12:44:59 GMT</lastBuildDate><pubDate>Mon, 06 Oct 2008 12:44:59 GMT</pubDate><ttl>60</ttl><item><title>VISTA发布居然上了新闻联播。。。。</title><link>http://www.cnblogs.com/edison1024/archive/2007/01/30/635040.html</link><dc:creator>edison1024</dc:creator><author>edison1024</author><pubDate>Tue, 30 Jan 2007 11:31:00 GMT</pubDate><guid>http://www.cnblogs.com/edison1024/archive/2007/01/30/635040.html</guid><wfw:comment>http://www.cnblogs.com/edison1024/comments/635040.html</wfw:comment><comments>http://www.cnblogs.com/edison1024/archive/2007/01/30/635040.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnblogs.com/edison1024/comments/commentRss/635040.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/edison1024/services/trackbacks/635040.html</trackback:ping><description><![CDATA[真是佩服微软的公关能力，一个产品发布居然上了一个国家最重要的新闻节目。<img src ="http://www.cnblogs.com/edison1024/aggbug/635040.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42809/" target="_blank">[新闻]51.COM技术副总裁邵辉跳槽百度</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>大家说说Google那个在线办公软件有什么特别啊？</title><link>http://www.cnblogs.com/edison1024/archive/2006/11/14/560204.html</link><dc:creator>edison1024</dc:creator><author>edison1024</author><pubDate>Tue, 14 Nov 2006 04:09:00 GMT</pubDate><guid>http://www.cnblogs.com/edison1024/archive/2006/11/14/560204.html</guid><wfw:comment>http://www.cnblogs.com/edison1024/comments/560204.html</wfw:comment><comments>http://www.cnblogs.com/edison1024/archive/2006/11/14/560204.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/edison1024/comments/commentRss/560204.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/edison1024/services/trackbacks/560204.html</trackback:ping><description><![CDATA[<a href="http://docs.google.com/">http://docs.google.com</a><br><br>看起来没什么特别啊？除了可以保存成常用文档格式，又不支持打开，哈哈。Google好像最近弄不出什么新鲜玩意了。。噎<img src ="http://www.cnblogs.com/edison1024/aggbug/560204.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42807/" target="_blank">[新闻]Mono 2.0终于到来</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Intel集成性能元件</title><link>http://www.cnblogs.com/edison1024/archive/2006/10/19/533112.html</link><dc:creator>edison1024</dc:creator><author>edison1024</author><pubDate>Wed, 18 Oct 2006 18:12:00 GMT</pubDate><guid>http://www.cnblogs.com/edison1024/archive/2006/10/19/533112.html</guid><wfw:comment>http://www.cnblogs.com/edison1024/comments/533112.html</wfw:comment><comments>http://www.cnblogs.com/edison1024/archive/2006/10/19/533112.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/edison1024/comments/commentRss/533112.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/edison1024/services/trackbacks/533112.html</trackback:ping><description><![CDATA[<a href="http://www.intel.com/cd/software/products/asmo-na/eng/302910.htm">http://www.intel.com/cd/software/products/asmo-na/eng/302910.htm</a><br><br>太强悍了，其中<a href="http://www.intel.com/cd/software/products/asmo-na/eng/302910.htm#vmo"><font color=#0860a8>Vector/Matrix Mathematics</font></a>，<a href="http://www.intel.com/cd/software/products/asmo-na/eng/302910.htm#ip"><font color=#0860a8>Image Processing</font></a>，<a href="http://www.intel.com/cd/software/products/asmo-na/eng/302910.htm#jc"><font color=#0860a8>JPEG Decode/Encode</font></a>，<a href="http://www.intel.com/cd/software/products/asmo-na/eng/302910.htm#dc"><font color=#0860a8>Data Compression</font></a>几个库对GIS软件的性能提升相当有建设性。偶记得当时linux版好像是免费的，现在也要钱了。<br><br>去年做过一个对比测试，具体测试环境忘了，这里只说明一个问题。<br>编码一张20M的BMP图片为JPEG，dotNet框架自带处理大概2000ms，用CxImage，也就是开源的JpegLib，大概1700ms，用IJL15（Intel Jpeg Lib，去年我只搞到了这个，只有lib文件和头文件，无源码），只需要大概700ms上下。<br><br>图片的编码速度对动态渲染以光栅图片发布地图方式的webgis的性能来说占比较重要的比例，提升其单位时间内图片生成的速度。<br><br>如果能用上KML（kernel math lib 核心数学库，好像现在是这个<a href="http://www.intel.com/cd/software/products/asmo-na/eng/302910.htm#vmo"><font color=#0860a8>Vector/Matrix Mathematics</font></a>）提升几何计算的速度就爽死了。<img src ="http://www.cnblogs.com/edison1024/aggbug/533112.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42808/" target="_blank">[新闻]百度任命李一男担任首席技术官</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>PostgreSQL的.NET DataProvider Npgsql 1.0正式发布</title><link>http://www.cnblogs.com/edison1024/archive/2006/10/18/532012.html</link><dc:creator>edison1024</dc:creator><author>edison1024</author><pubDate>Tue, 17 Oct 2006 19:59:00 GMT</pubDate><guid>http://www.cnblogs.com/edison1024/archive/2006/10/18/532012.html</guid><wfw:comment>http://www.cnblogs.com/edison1024/comments/532012.html</wfw:comment><comments>http://www.cnblogs.com/edison1024/archive/2006/10/18/532012.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/edison1024/comments/commentRss/532012.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/edison1024/services/trackbacks/532012.html</trackback:ping><description><![CDATA[参考地址<a href="http://www.postgresql.org/about/news.660"><br>http://www.postgresql.org/about/news.660</a><br><br>看起来作者对这个版本的发布比较兴奋，在上面狂thx了N把。<br><br>目前还不知道性能如何，有时间研究研究。<img src ="http://www.cnblogs.com/edison1024/aggbug/532012.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42805/" target="_blank">[新闻]Google Knol 开始尝试有声版</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>MsSqlSpatial - Spatial Extensions for SQL Server 2005</title><link>http://www.cnblogs.com/edison1024/archive/2006/09/11/501042.html</link><dc:creator>edison1024</dc:creator><author>edison1024</author><pubDate>Mon, 11 Sep 2006 07:59:00 GMT</pubDate><guid>http://www.cnblogs.com/edison1024/archive/2006/09/11/501042.html</guid><wfw:comment>http://www.cnblogs.com/edison1024/comments/501042.html</wfw:comment><comments>http://www.cnblogs.com/edison1024/archive/2006/09/11/501042.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/edison1024/comments/commentRss/501042.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/edison1024/services/trackbacks/501042.html</trackback:ping><description><![CDATA[<p><a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=MsSqlSpatial">http://www.codeplex.com/Wiki/View.aspx?ProjectName=MsSqlSpatial</a></p>
<p>FreeGIS.org刚刚加入的一个开源项目，基于SQL Server 2005的空间数据库扩展，目前是0.1beta版。<br>这个项目遵从于OGC Simple Features Specification for SQL Revision 1.1，基于NTS和SharpMap来构建。</p>
<p>今天拉下来看了看，果然不出所料，利用SQL2005的新特性，里面大量采用了基于托管代码实现的CLR存储过程、CLR函数等。和我当年的想法不谋而合<a class=singleposttitle id=viewpost1_TitleUrl href="http://www.cnblogs.com/edison1024/archive/2005/10/15/255355.html"><font color=#223355>利用SQL Server 2005中的CLR集成构建空间数据库（灌水），</font></a>噎。。。可惜光顾灌水了，没干实事。<br><br>对空间数据库有兴趣的朋友可以下来看看，值得学习。</p><img src ="http://www.cnblogs.com/edison1024/aggbug/501042.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42804/" target="_blank">[新闻]12日电脑与人进行世纪对话 可思考机器或诞生</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>关于SVG问题的一些回答。</title><link>http://www.cnblogs.com/edison1024/archive/2006/06/25/435367.html</link><dc:creator>edison1024</dc:creator><author>edison1024</author><pubDate>Sun, 25 Jun 2006 11:01:00 GMT</pubDate><guid>http://www.cnblogs.com/edison1024/archive/2006/06/25/435367.html</guid><wfw:comment>http://www.cnblogs.com/edison1024/comments/435367.html</wfw:comment><comments>http://www.cnblogs.com/edison1024/archive/2006/06/25/435367.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnblogs.com/edison1024/comments/commentRss/435367.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/edison1024/services/trackbacks/435367.html</trackback:ping><description><![CDATA[<p>不知道为何最近在MSN上问我关于SVG问题的人忽然多了起来，记得以前曾也零星讨论过类似的问题，今天看到浪人的文章忽然想起就一并谈谈。<br><br>其实SVG本身相当的简单，熟悉w3c一系列DOM规范的花一两天时间都可以搞清楚SVG DOM了，w3c网站上有详细的文档。ADOBE也提供有SVG VIEWER的白皮书可以参考。如果熟悉IE DOM编成的话那么使用SVG DOM也没什么两样。</p>
<p>SVGZ里包含JS（事实上不应该叫JS，确切的说应该是ECMAScript262）没什么好奇怪的，SVGZ实际上就GZIP压缩格式，SVG VIEWER支持GZIP格式自动解压(IE6也支持GZIP格式，呵呵)。SVG VIEWER里带有ECMAScript引擎，可以执行符合ECMAScript262规范脚本语言。在开发SVG应用时实际上可以采用两种策略。一种就是把脚本放在SVG VIEWER内部执行。一种就是使用IE浏览的脚本引擎，通过COM接口与SVG DOM进行交互。其实还有一种相当变态的是把整个SVG VIEWER&#8220;融&#8221;到IE6里去（就是说看不到SVG VIEWER的插件窗口，SVG与IE整个结合在一起），但据我以前的测试这种方式及其不稳定，会出现IE6重绘出错甚至直接挂掉。（IE6的BUG）<br><br>目前SVG的运行插件相当多，w3c上有插件排行榜，但在目前主流浏览器并不内置支持SVG的情况下采用SVG并不是明智的选择。不过如果着眼未来的话到可以考虑。IE7已经明确支持SVG，目前可在&#946;2上测试。FF1.5已经内置支持，印象中记得是用java实现的。<br><br>国外采用SVG实现的webgis非常多，那是&#8220;相当滴&#8221;多，商业和开源的都有，有兴趣的朋友欢迎跟贴讨论，有时间我会把以前搜集的SVG资料整理后发上来。最近实在忙的要死。还要忙看球。。。</p><img src ="http://www.cnblogs.com/edison1024/aggbug/435367.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42803/" target="_blank">[新闻]人民网评:中国移动为什么要抛弃iPhone?</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>hiahia，把这两句立此存照。</title><link>http://www.cnblogs.com/edison1024/archive/2006/06/13/424863.html</link><dc:creator>edison1024</dc:creator><author>edison1024</author><pubDate>Tue, 13 Jun 2006 07:11:00 GMT</pubDate><guid>http://www.cnblogs.com/edison1024/archive/2006/06/13/424863.html</guid><wfw:comment>http://www.cnblogs.com/edison1024/comments/424863.html</wfw:comment><comments>http://www.cnblogs.com/edison1024/archive/2006/06/13/424863.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/edison1024/comments/commentRss/424863.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/edison1024/services/trackbacks/424863.html</trackback:ping><description><![CDATA[<p>不学无术，好大喜功。<br><br>无知无畏，志大才疏。<br><br><br><br><br><br><br><br><br><br><br><br><br>哈哈，有意思，半年后再来看看。</p><img src ="http://www.cnblogs.com/edison1024/aggbug/424863.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42802/" target="_blank">[新闻]索尼推出第二代触控屏eBook电子书</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>转一篇台湾清华大学关于TSP问题的研究文章，挺有意思。</title><link>http://www.cnblogs.com/edison1024/archive/2006/05/30/413411.html</link><dc:creator>edison1024</dc:creator><author>edison1024</author><pubDate>Tue, 30 May 2006 12:55:00 GMT</pubDate><guid>http://www.cnblogs.com/edison1024/archive/2006/05/30/413411.html</guid><wfw:comment>http://www.cnblogs.com/edison1024/comments/413411.html</wfw:comment><comments>http://www.cnblogs.com/edison1024/archive/2006/05/30/413411.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/edison1024/comments/commentRss/413411.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/edison1024/services/trackbacks/413411.html</trackback:ping><description><![CDATA[<div align=left twffan="done">这是一篇台湾清华大学咨询工程系关于用类神经的方法试解推销员问题的一篇文章，&nbsp; <span twffan="done">全文科学严谨又不失风趣幽默，枯燥的理论、概念在作者的调侃下生动的娓娓道来，着实令人精神愉悦。</span><br>最后落款是1997年12月，几乎是10年前。。。。汗啊。。。<br><br>原文地址<a href="http://wayne.cs.nthu.edu.tw/~roland/nn/report_fc.html">http://wayne.cs.nthu.edu.tw/~roland/nn/report_fc.html</a><br><br><br><br><br></div>
<center>
<table cellPadding=0 border=0>
    <tbody>
        <tr>
            <td>
            <center><img height=261 alt="Title Graphic" src="http://wayne.cs.nthu.edu.tw/~roland/nn/title.gif" width=542 useMap=#title_graphic border=0 twffan="done"></center></td>
        </tr>
        <tr>
            <td bgColor=#000000>
            <div align=right twffan="done"><b><font color=#ffffff>背景圖：搜尋第四度空間╱達利</font></b></div>
            </td>
        </tr>
    </tbody>
</table>
</center>
<center>&nbsp;</center>
<center><i>建議解析度 <font color=#ff0000>800 x 600</font> 或以上，並請用網景通訊家瀏覽</i></center>
<center><i>請務必下載<a href="http://wayne.cs.nthu.edu.tw/~roland/nn/binary.zip">執行檔</a>(Windows 95)</i></center>
<div align=right twffan="done"><b><i><u><font size=-1>工作分配</font></u></i></b></div>
<div align=right twffan="done"><i><font size=-1>程式‧網頁（英文）‧報告－<b>吳瑞千</b></font></i></div>
<div align=right twffan="done"><i><font size=-1>網頁（中文）‧實驗－<b>林惠娟</b></font></i></div>
<div align=right twffan="done"><i><font size=-1>網頁（中文）‧實驗－<b>江鳳儀</b></font></i></div>
&nbsp; <br>&nbsp;
<p>&nbsp;
<table cols=2 width="100%">
    <tbody>
        <tr>
            <td width=220>
            <center><a name=ch1></a><img height=158 src="http://wayne.cs.nthu.edu.tw/~roland/nn/ch1.gif" width=202 border=0 twffan="done"></center></td>
            <td vAlign=top>
            <div align=right twffan="done">
            <hr width="100%">
            <b><tt><font size=+3>How simple is TSP?</font></tt></b></div>
            <div align=right twffan="done"><b><tt><font size=+3>Very simple.</font></tt></b>&nbsp;
            <hr width="100%">
            </div>
            </td>
        </tr>
    </tbody>
</table>
&nbsp;
<p><tt><font size=+1>推銷員問題就是，給定一個有 n個城市的集合，一個可憐的推銷員想要確實地拜訪每個城市然後再回到開始的地方。推銷員問題可以追溯到十七世紀漢米爾頓循環（Hamiltonain Cycle） 的問題。在電腦的發展歷程中，就因為推銷員問題的簡單性和 NP-problem 的代表性，推銷員問題總是做為新機器的鍊金石（就像有的喜歡以計算圓周率到數百萬位小數一樣）。</font></tt>
<p><tt><font size=+1>如果需要更多有關 TSP最近的發展歷程與說明，可以看看我們<a href="http://wayne.cs.nthu.edu.tw/~roland/fuzzy/index.html">以前的成果</a>。</font></tt>
<p><tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
<table cols=2 width="100%">
    <tbody>
        <tr>
            <td width=220>
            <center><a name=ch2></a><img height=158 src="http://wayne.cs.nthu.edu.tw/~roland/nn/ch2.gif" width=202 border=0 twffan="done" NOSAVE></center></td>
            <td vAlign=top>
            <div align=right twffan="done">
            <hr width="100%">
            <b><tt><font size=+3>How difficult is TSP?</font></tt></b></div>
            <div align=right twffan="done"><tt><b><font size=+3>Very difficult.</font></b>&nbsp;</tt>&nbsp;
            <hr width="100%">
            </div>
            </td>
        </tr>
    </tbody>
</table>
<tt>&nbsp;</tt>
<p><tt><font size=+1>諷刺的是，越不起眼的東西通常是越致命的。什麼是地球上最致命的玩意呢？病毒。圍棋－規則最少但卻最難學得精。推銷員問題有最簡單的規則－簡單得連一個小漢都懂－可是它卻需要天文數字般的計算能力才能獲得最佳的結果，也許比「天文數字」還糟。以一個有42個城市的推銷員問題為例，如果我們很不幸地需要列舉所有的路徑才能確定何者最短，那麼總共會有 <i>(42-1)!/2 = 1.67 * 10<sup>49</sup></i>&nbsp; 的拜訪方式。如果你不瞭解這個數字有多大，給你一個概念：全宇宙總共才有 <i>10<sup>48</sup></i> 個粒子。</font></tt> <br><tt>&nbsp;</tt>
<p><tt><font size=+1>有了電腦的幫助，我們可以奇蹟似地解決遠比上面來得大的推銷員問題（世界記錄：米飯大學（Rice）的包柏‧比克司拜爾特（ Bob Bixbyet）等人用了50台接在一起的工作站解決了3038個城市的推銷員問題）。根據欣欣那提大學的馬克‧諾司章（Mark H. Noschang）的報告，解決推銷員問題的方法可以略分為以下兩類：</font></tt> <br><tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
<center>
<table cellSpacing=20 cols=2 width="100%">
    <tbody>
        <tr vAlign=top>
            <td bgColor=#99ff99>
            <center><b><tt><font size=+3>Heuristic</font></tt></b></center>
            <ul>
                <li><tt><font size=+1>Limited Memory Heuristic Search</font></tt>
                <li><tt><font size=+1>Clustering Heuristics for the Euclidean TSP</font></tt>
                <li><tt><font size=+1>Genetic Algorithms and Evolutionary Programs&nbsp;</font></tt>
                <li><tt><font size=+1>Memetic Algorithms&nbsp;</font></tt>
                <li><tt><font size=+1>Tabu Search&nbsp;</font></tt>
                <li><tt><font size=+1>Simulated Annealing&nbsp;</font></tt>
                <li><tt><font size=+1>Neural Networks&nbsp;</font></tt>
                <li><tt><font size=+1>Ant Systems&nbsp;</font></tt>
                <li><tt><font size=+1>Space-filling heuristics&nbsp;</font></tt>
                <li><tt><font size=+1>Other Search Heuristics&nbsp;</font></tt> </li>
            </ul>
            <tt>&nbsp;</tt></td>
            <td bgColor=#ccffff>
            <center><tt><font size=+1>&nbsp;</font><b><font size=+3>Approximation</font></b></tt></center>
            <ul>
                <li><tt><font size=+1>Polynomial-time Approximation Schemes (PTAS)&nbsp;</font></tt>
                <li><tt><font size=+1>Branch-and-Bound &amp; Branch-and-Cut&nbsp;</font></tt> </li>
            </ul>
            </td>
        </tr>
    </tbody>
</table>
</center><tt>&nbsp;</tt>
<p><tt><font size=+1>去年，我們在<a href="http://www.cs.nthu.edu.tw/~jang/courses/cs5611/">乏晰集理論與應用</a>的課程裡，已經試過用基因演算法（ Genetic Algorithm）和模擬退火（Simulated Annealing ）來對付惱人的推銷員問題。今年學了類神經網路，我們便想換個花樣用類神經網路來解解看繼續推銷員問題。在這個計畫裡，我們試了兩招－彈性網絡（ Elastic Net）與螞蟻王國（Ant System）。除此之外，為了能瞭解人腦在解決推銷員問題時到底靈不靈光，我們還做了一個人腦對電腦的實驗。</font></tt> <br><tt>&nbsp;</tt>
<p><tt>&nbsp;</tt>
<table cols=2 width="100%">
    <tbody>
        <tr>
            <td width=220>
            <center><a name=ch3></a><img height=158 src="http://wayne.cs.nthu.edu.tw/~roland/nn/ch3.gif" width=202 border=0 twffan="done" NOSAVE></center></td>
            <td vAlign=top>
            <div align=right twffan="done">
            <h1>
            <hr width="100%">
            <tt>Can Neural Net solve TSP?<br>Maybe.&nbsp;</tt>&nbsp;
            <hr width="100%">
            </h1>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
<table cols=2 width="100%">
    <tbody>
        <tr>
            <td><tt><font size=+1>乍看之下，用類神經網路來解最佳組合的問題似乎不是個好主意。畢竟類神經網路比較適合解決辨識、分類，或是監督式╱非監督式學習之類的問題。第一個利用類神經網路解決推銷員問題（雖然不算太成功）的是郝伯非爾德（Hopfield）和坦克（Tank）這兩位[1]。他們宣稱已經成功地解決10個城市的推銷員問題。根據他們的論文指出（順帶一提，他們的論文實在是舊到只能從別人的論文裡道聽塗說拼湊出來），在20次不同的試驗裡，他們的類神經網路可以收斂得到16個合適的解答。並且在這些合適的解答裡，有一半是最佳解。然而，對一個30個城市的推銷員問題，他們的方法就不怎麼行了。怎麼說不怎麼行了呢？右邊是郝伯非爾德找出來的幾個10個程式的推銷員問題的所謂「合適解」，你可以想像拿來解30個城市的推銷員問題其下場有多麼不堪。</font></tt></td>
            <td vAlign=top align=right width=250><img height=165 hspace=10 src="http://wayne.cs.nthu.edu.tw/~roland/nn/fig_htres.gif" width=240 align=ABSCENTER border=1 twffan="done" NOSAVE></td>
        </tr>
    </tbody>
</table>
<tt>&nbsp;</tt>
<p><tt><font size=+1>過了三年，另外兩個研究員威爾森（Wilson）和堡壘（Pawley）[2] 提出報告，說郝伯非爾德和坦克的方法簡直就是海市蜃樓，看得到摸不到。在他們 100次的試驗裡，只有15次是較為合適的解。而且這些所謂的合適解，其實不比亂走一通好到那裡去，其他人的報告也有相同的結果（不過並沒有論文提到郝伯非爾德和坦克聽到威爾森和堡壘的報告後有什麼反應）。但是這篇令人失望的實驗報告並沒有擊垮研究類神經網路的人，反而讓研究利用類神經網路解決最佳組合問題變成一種風尚。許多論文就是探討如何改進郝伯非爾德和坦克的類神經網路或是分析其數學特性。</font></tt>
<p><tt><font size=+1>基本上，三種最廣為人知用以解決推銷員問題的的類神經網路為：</font></tt>
<ol>
    <li><tt><font size=+1>郝伯非爾德和坦克的類神經網路模型</font></tt>
    <li><tt><font size=+1>科厚南（ Kohonen）的自我組織圖（Self-Organizing Map）</font></tt>
    <li><tt><font size=+1>彈性網絡</font></tt> </li>
</ol>
<tt><font size=+1>以下我們對郝伯非爾德和坦克的類神經網路模型做個簡短的介紹。如果你想知道更多這一類令人發暈的數學式子，在張智星老師的書 <i>"Neuro-Fuzzy And Soft Computing" </i>中第11章第 7節第4 小節，也就是第 324頁到第 326頁裡就有一堆。</font></tt> <br><tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
<table>
    <tbody>
        <tr>
            <td vAlign=top><tt><font size=+1>郝伯非爾德和坦克的類神經網路模型是由 n個完全連接的神經元所組成（ n是城市的數目）。通常我們用 n&#215;n 的矩陣來表示。能量函數則定義成<img height=96 src="http://wayne.cs.nthu.edu.tw/~roland/nn/fig_energy.gif" width=373 align=ABSCENTER twffan="done" NOSAVE>。如果城市 <i>i </i>是第 <i>j </i>個被拜訪的城市，<i>V<sub>xy </sub></i>就會為 1。前兩項是為了確保網路（矩陣）中每一行每一列最多只有一個神經元被啟動。第三項是為了確保整個網路中全部只有 n個神經被啟動。第四項則讓網路會偏好較短路徑。比重的定義如下：</font>&nbsp;</tt>&nbsp;
            <ul><tt>&nbsp;</tt><img height=128 src="http://wayne.cs.nthu.edu.tw/~roland/nn/fig_weights.gif" width=398 border=0 twffan="done"></ul>
                <tt><font size=+1>其中<img height=25 src="http://wayne.cs.nthu.edu.tw/~roland/nn/fig_delta.gif" width=110 align=ABSCENTER twffan="done" NOSAVE></font>&nbsp;</tt></td>
                <td vAlign=top align=right width=300>
                <center>
                <table cols=1 width="100%">
                    <tbody>
                        <tr>
                            <td align=right><a href="http://www.molbio.princeton.edu/faculty/hopfield.html"><img height=156 alt="John Hopfield" src="http://wayne.cs.nthu.edu.tw/~roland/nn/JohnHopfield.jpg" width=200 border=0 twffan="done" NOSAVE></a></td>
                        </tr>
                        <tr>
                            <td>
                            <div align=right twffan="done"><i><font size=-1>Professor John Hopfield</font></i></div>
                            <div align=right twffan="done"><i><font size=-1>Department of Molecular Biology</font></i></div>
                            <div align=right twffan="done"><i><font size=-1>Princeton University</font></i></div>
                            </td>
                        </tr>
                    </tbody>
                </table>
                </center><tt>&nbsp;</tt>&nbsp;
                <div align=right twffan="done"><tt>&nbsp;</tt></div>
                </td>
            </tr>
        </tbody>
    </table>
    <tt>&nbsp;</tt> <br><tt>&nbsp;</tt> <br><tt><font size=+1>如果你還沒被這些可怕的式子嚇暈，而且還很勇敢地想知道更多的話，你可以在大部分的跟類神經網路相關的書或論文裡，找到詳細的數學推論和每一步驟。</font></tt> <br><tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
    <table width="100%">
        <tbody>
            <tr vAlign=top>
                <td width=250>
                <table cols=1 width="100%">
                    <tbody>
                        <tr>
                            <td><a href="http://www.cis.hut.fi/nnrc/teuvo.html"><img height=190 src="http://wayne.cs.nthu.edu.tw/~roland/nn/TeuvoKohonen.gif" width=200 border=0 twffan="done" NOSAVE></a></td>
                        </tr>
                        <tr>
                            <td><font size=-1><i>Professor Teuvo Kohonen&nbsp;</i>&nbsp;</font>&nbsp; <br><font size=-1><i>Neural Networks Research Centre</i>&nbsp;</font>&nbsp; <br><font size=-1><i>Helsinki University of Technology&nbsp;</i>&nbsp;</font>&nbsp; <br><i><font size=-1>Finland&nbsp;</font></i></td>
                        </tr>
                    </tbody>
                </table>
                <tt>&nbsp;</tt></td>
                <td><tt><font size=+1>在1984年，科厚南（ Kohonen）第一個提出自我組織圖（ Self-Organizing Map簡稱SOM）[3]。 自我組織圖本來是設計來解資料分類叢集（ data clustering）的問題，有些人卻嘗試把應用它解最佳化問題。很巧的，你也可以在張智星老師的同一本書裡（第 305頁至 308頁）找到相關的介紹。在這裡我們只簡短地介紹柏納‧安結尼爾（Bernard Angeniol）等人關於自我組織圖的的研究[4]。</font>&nbsp;</tt>&nbsp;
                <p><tt><font size=+1>現在有 <i>m</i>個城市和圍成圈圈的 <i>m</i>個點。Bernard的方法如下：</font></tt>&nbsp;
                <p><tt><font size=+1>對每一個城市 <i>X<sub>i</sub> </i>:</font>&nbsp;</tt>&nbsp;
                <ol>
                    <li><tt><font size=+1>找出離&nbsp; <i>X<sub>i</sub></i>最近的點 <i>C<sub>j</sub></i> .</font></tt>
                    <li><tt><font size=+1>將這個點和其鄰點以下列方式向 <i>X<sub>i</sub></i> 移動&nbsp;</font></tt><img height=60 src="http://wayne.cs.nthu.edu.tw/~roland/nn/fig_som.gif" width=450 align=center twffan="done" NOSAVE>
                    <li><tt><font size=+1>減少 <i>G</i>的值，令 <i>G = (1-a)G</i></font></tt> </li>
                </ol>
                <tt>&nbsp;</tt></td>
            </tr>
        </tbody>
    </table>
    <tt>&nbsp;</tt>
    <p><tt><font size=+1>可以看得出來這個方法有多簡單。 <i>G</i>是增益參數，而 <i>n</i>是沿著圈圈測量，點 <i>C<sub>j</sub></i> 和 <i>C</i>的距離。不像郝伯非爾德和坦克的模型需要調整 5個參數，（想一下，到底是解決10個城市的推銷員問題難還是調整 5個參數以求最佳解難？）， a是唯一需要調整的參數。在論文裡，對 <i>a</i>和 <i>G</i>有較詳細的討論。</font></tt>
    <p><tt><font size=+1>你可能會對自我組織圖的程式長相感到好奇。如果這樣的話，你可能要失望了，因為我們這次並沒有設計自我組織圖的程式，主要原因是自我組織圖實在太像彈性網絡了。但是你可以連往<a href="http://wayne.cs.nthu.edu.tw/~roland/nn/index2c.html#ch9">其它的網站</a>看看其他人如何將自我組織圖應用在解決組合問題上。</font></tt>
    <p><tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
    <table cols=2 width="100%">
        <tbody>
            <tr>
                <td width=220>
                <center><a name=ch4></a><img height=158 src="http://wayne.cs.nthu.edu.tw/~roland/nn/ch4.gif" width=202 border=0 twffan="done"></center></td>
                <td vAlign=top>
                <div align=right twffan="done">
                <h1>
                <hr width="100%">
                <tt>The best NN to solve TSP?<br>Elastic Net.&nbsp;</tt>&nbsp;
                <hr width="100%">
                </h1>
                </div>
                </td>
            </tr>
        </tbody>
    </table>
    <tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
    <p><tt><font size=+1>彈性網絡是在1987年由德賓（Durbin）和威爾蕭（Willshaw）在「自然」月刊所提出[5]。這篇只有2頁的文章（郝伯非爾德和坦克論文足足有11頁），給人的第一印象是直覺，簡單，而有力。</font></tt>
    <p><tt>&nbsp;</tt>
    <table cols=2 width="100%">
        <tbody>
            <tr>
                <td vAlign=top><tt><font size=+1>彈性網絡給人的第一印象是自我組織圖的孿生兄弟。事實上，他們的確相關。但是彈性網絡比它的小兄弟速度快，所得的解也較佳。彈性網絡的觀念非常簡單，就像我們在上一章所提到的柏納‧安結尼爾的研究，彈性網絡是由 <i>m</i>個點的圈形所組成的（注意： <i>m</i>必須比城市的數目 <i>n</i>大）。現在，想像彈性網絡是一個橡皮筋，它會自然會收斂成最小張力的狀態。現在，再把城市當具有吸引力的藍點，它會大力吸引彈性網絡上的紅點。於是對於彈性網絡上的每一點，都有兩股力量作用於上，如右圖所示。</font></tt></td>
                <td vAlign=top align=right width=360><img height=218 src="http://wayne.cs.nthu.edu.tw/~roland/nn/fig_en_force.gif" width=348 border=1 twffan="done" NOSAVE></td>
            </tr>
        </tbody>
    </table>
    <tt>&nbsp;</tt>
    <p><tt><font size=+1>彈性網絡的精髓是一組簡單的方程式（ <i>X</i>是城市， <i>Y</i>是繩上的點）：</font></tt>
    <ul><img height=132 src="http://wayne.cs.nthu.edu.tw/~roland/nn/fig_en_eqs.gif" width=302 align=ABSCENTER twffan="done" NOSAVE></ul>
        <tt><font size=+1>Elastic net是一不斷疊代的方法。第一個式子是繩上的點每一次疊代改變的量，第一項是吸引力，第二項就是張力。</font> <font size=+1>第二個方程式是城市 <i>X<sub>i</sub></i>對點 <i>Y<sub>j</sub></i>的影響。</font></tt> <br><tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
        <table cols=2 width="100%">
            <tbody>
                <tr vAlign=top>
                    <td><tt><font size=+1>彈性網絡最妙的地方是它永遠可以產生有效解。由於它不會產生交叉的路徑，所以產生的解都相當不錯。舉例來說，對一個隨機產生的50個城市的推銷員問題，彈性網絡的解只有比德賓和威爾蕭的論文中所提的最具競爭力的演算法長 2% （什麼是最具競爭力的演算法？有人說是林－克尼根（ Lin-Kernighan）演算法，也有人說是 SA+OP）。但是彈性網絡最吸引人的地方不在它的有效解，而在它收斂的速度。許多人試著去改善彈性網絡收斂的速度，都有不錯的結果。舉例來說，柏爾（Burr）所提出的改良版可令50個城市的推銷員問題的收斂次數由1250大幅降為30次[6]。一個最佳化的彈性網絡的速度會比林－克尼根快兩倍。[7]</font></tt></td>
                    <td vAlign=top align=right width=200>
                    <table cols=1 width=200>
                        <tbody>
                            <tr>
                                <td>
                                <div align=right twffan="done"><img height=172 src="http://wayne.cs.nthu.edu.tw/~roland/nn/RichardDurbin.gif" width=154 border=0 twffan="done"></div>
                                </td>
                            </tr>
                            <tr align=right>
                                <td>
                                <div align=right twffan="done"><i><font size=-1>Dr. Richard Durbin</font></i></div>
                                <div align=right twffan="done"><i><font size=-1>Informatics Division at the&nbsp;</font></i></div>
                                <div align=right twffan="done"><i><font size=-1>Sanger Centre</font></i></div>
                                <i><font size=-1>United Kingdom</font></i></td>
                            </tr>
                        </tbody>
                    </table>
                    <tt>&nbsp;</tt></td>
                </tr>
            </tbody>
        </table>
        <tt>&nbsp;</tt> <br><tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
        <table cols=2 width="100%">
            <tbody>
                <tr>
                    <td width=220>
                    <center><a name=ch5></a><img height=158 src="http://wayne.cs.nthu.edu.tw/~roland/nn/ch5.gif" width=202 border=0 twffan="done"></center></td>
                    <td vAlign=top>
                    <div align=right twffan="done">
                    <h1>
                    <hr width="100%">
                    <tt>How about some traveling ants?<br>Why not.&nbsp;</tt>&nbsp;
                    <hr width="100%">
                    </h1>
                    </div>
                    </td>
                </tr>
            </tbody>
        </table>
        <tt>&nbsp;</tt> <br><tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
        <table cellSpacing=4 width="100%">
            <tbody>
                <tr vAlign=top>
                    <td width=200>
                    <table cols=1 width="100%">
                        <tbody>
                            <tr>
                                <td><a href="http://iridia.ulb.ac.be/dorigo/"><img height=176 src="http://wayne.cs.nthu.edu.tw/~roland/nn/dorigo.gif" width=166 border=0 twffan="done" NOSAVE></a></td>
                            </tr>
                            <tr>
                                <td><font size=-1><i>Dr. Marco Dorigo</i>&nbsp;</font>&nbsp; <br><font size=-1><i>IRIDIA</i>&nbsp;</font>&nbsp; <br><font size=-1><i>University of Bruxelles</i>&nbsp;</font>&nbsp; <br><i><font size=-1>Belgium</font></i></td>
                            </tr>
                        </tbody>
                    </table>
                    <tt>&nbsp;</tt></td>
                    <td><tt><font size=+1>螞蟻王國是我們最偏好的方法。它是「有機的」、直覺的、強韌的，而且迅速（有些時候）。螞蟻王國是由一個看起很和氣的比利時人馬可‧朵麗哥（Marco Dorigo）[11]在觀察真正的螞蟻時得到的靈感。螞蟻可以在食物和巢穴間找到最短的路徑，所以為什麼不能用它們來解推銷員問題呢？在深入研究螞蟻王國前，我們先來看看自然界中這些神奇的螞蟻。</font>&nbsp;</tt>&nbsp;
                    <center><img height=289 src="http://wayne.cs.nthu.edu.tw/~roland/nn/fig_realants.gif" width=639 border=0 twffan="done"></center></td>
                </tr>
            </tbody>
        </table>
        <tt>&nbsp;</tt>
        <p><tt><font size=+1>因為螞蟻在行動的時候會釋放出一些費洛蒙，這些費洛蒙就是為什麼螞蟻會一隻一隻地跟著前面的同伴走的原因。下一隻螞蟻會跟著前一隻螞蟻走的機率跟前一隻螞蟻所釋放的費洛蒙成正比。換句話說費洛蒙越多，下一隻螞蟻會跟著走機會越大。也就是說，個體會偏好大眾的選擇。現在你可以解釋上圖的現象了嗎？</font></tt>
        <p><tt><font size=+1>螞蟻王國只有一個函數需要瞭解：<img height=61 src="http://wayne.cs.nthu.edu.tw/~roland/nn/fig_as_eqs.gif" width=274 align=ABSCENTER border=0 twffan="done">。這個函數決定了螞蟻的下一步。<i>t(r,s)</i>是從城市 <i>r</i>到城市 <i>s</i>的費洛蒙強度。 <i>e(r,s)</i>是城市 <i>r</i>到城市 <i>s</i>的距離倒數（叫做能見度）。<i>M<sub>k</sub></i> 是螞蟻 <i>k</i>的記憶體，也就是說螞蟻記得它已經拜訪過的城市。每一隻螞蟻會根據從所在城市至還沒拜訪城市的機率 <i>P<sub>k</sub>(r,s)</i>決定下一步。等到每一隻螞蟻完成旅行，便會分別將費洛蒙 <i>Q</i>散布在走過的路徑上。路徑越短，加得越多。這使得下一回合時，螞蟻們便會偏好能見度較高且費洛蒙較多的路徑。當然，每一回合結束時，一部份的費洛蒙會散發掉。這就是整個螞蟻王國運作原理。夠簡單吧？</font></tt> <br><tt>&nbsp;</tt> <br><tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
        <table cols=2 width="100%">
            <tbody>
                <tr>
                    <td width=220>
                    <center><a name=ch6></a><img height=158 src="http://wayne.cs.nthu.edu.tw/~roland/nn/ch6.gif" width=202 border=0 twffan="done"></center></td>
                    <td vAlign=top>
                    <div align=right twffan="done">
                    <h1>
                    <hr width="100%">
                    <tt>Is there anything I can play?<br>Sure.&nbsp;</tt>&nbsp;
                    <hr width="100%">
                    </h1>
                    </div>
                    </td>
                </tr>
            </tbody>
        </table>
        <tt>&nbsp;</tt>
        <p><tt><font size=+1>我們設計了幾個在暈倒司九五（Windows 95）下執行的程式來試試彈性網絡與螞蟻王國的效果。除此之外，我們還改寫了以前的基因演算法與設計了一個讓人試著來解推銷員問題的小程式。在下載並執行這些程式前，請花幾分鐘看一下以下的程式說明。</font></tt> <br><tt>&nbsp;</tt>
        <center><img height=418 src="http://wayne.cs.nthu.edu.tw/~roland/nn/running.gif" width=548 border=2 twffan="done" NOSAVE></center>
        <p><tt><font size=+1>所有的程式都有著相似的介面，基本上可以分成三個區域：輸出區、參數區和狀態列。輸出區會畫出程式地圖，找到的解，以及其他相關的資訊（例如在螞蟻王國中，輸出區會畫出費洛蒙的強度）。要瞭解狀態列的縮寫意義，只要將滑鼠游標停留在狀態列上一下子，就可以看到提示。至於參數區的說明如下：</font></tt>
        <p><tt>&nbsp;</tt>
        <table width="100%">
            <tbody>
                <tr>
                    <td vAlign=top>
                    <h1><tt>彈性網絡</tt></h1>
                    <tt><font size=+1>使用到的參數跟談到彈性網絡的那一章裡頭所講的是一樣的， <i><font color=#ff0000>ke</font><font color=#000000> </font></i><font color=#330000>則是終止條件。如果</font> <i><font color=#ff0000>step</font></i> 被打勾，則程式在每一步之間會暫停 100毫秒（或其他使用者輸入的數值）。如果 <i><font color=#ff0000>R</font><font color=#ff6666>andom</font></i> 被打勾，則程式會以系統時間作為亂數產生器的種子數，否則，就以使用者輸入的數（ <i><font color=#ff0000>R</font><font color=#ff6666>andom</font></i> 右邊那一格）為種子數。</font>&nbsp;</tt>&nbsp;
                    <p><tt><font size=+1>你可以利用 <i><font color=#ff0000>load</font></i> 來載入推銷員問題檔與其最佳解，如此便可比較彈性網絡所找出來的解與最佳解差了多少。</font>&nbsp;</tt>&nbsp;
                    <p><tt><font size=+1><i><font color=#ff0000>Central, Radius, and Error</font></i>&nbsp; 這三個參數的前兩個，只影響彈性網絡的起使位置和大小，對求解沒有影響。第三個參數代表城市與網絡點之間的容忍距離，也就是說，如果某城市與某網絡點之間的距離，小於容忍距離，那就把這個城市當成是被該網絡點所拜訪。</font>&nbsp;</tt>&nbsp;
                    <p><tt><font size=+1>按下小 <i><font color=#ff0000>w</font></i>按鈕會將目前的結果與參數值寫到「en.out」這個檔案。使得我們可以很方便地來比較不同參數的效果。</font></tt></p>
                    </td>
                    <td vAlign=top align=right><img height=325 src="http://wayne.cs.nthu.edu.tw/~roland/nn/en_running.gif" width=148 border=2 twffan="done" NOSAVE></td>
                </tr>
            </tbody>
        </table>
        <tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
        <table width="100%">
            <tbody>
                <tr>
                    <td vAlign=top>
                    <h1><tt>螞蟻王國</tt></h1>
                    <tt><font size=+1>這個使用者介面和彈性網絡幾乎是一模一樣，唯一需要解釋的東西是 <i><font color=#ff6666>Tolerance</font></i> 這個參數。這個參數代表如果每一隻螞蟻所找到的解其誤差在 <i><font color=#ff6666>Tolerance</font></i>以下，則稱螞蟻們進入的停滯狀態，並中斷迴圈顯示結果。同時在狀態列的最左邊會顯示一個小 <i><font color=#ff0000>S</font></i> 記號。<i><font color=#ff0000>steps</font></i>這個參數決定了螞蟻們要試幾回合。</font></tt></td>
                    <td vAlign=top align=right><img height=325 src="http://wayne.cs.nthu.edu.tw/~roland/nn/as_running.gif" width=150 border=2 twffan="done" NOSAVE></td>
                </tr>
            </tbody>
        </table>
        <tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
        <table width="100%">
            <tbody>
                <tr>
                    <td vAlign=top>
                    <h1><tt>人腦</tt></h1>
                    <tt><font size=+1>這個程式讓你載入或用特定的種子數來初始化不同的推銷員問題，使用者只需循序按下欲拜訪的城市，最後再按下 <i><font color=#ff0000>Calculate</font></i>按鈕即可。</font></tt></td>
                    <td vAlign=top align=right><img height=170 src="http://wayne.cs.nthu.edu.tw/~roland/nn/human_running.gif" width=80 border=2 twffan="done" NOSAVE></td>
                </tr>
            </tbody>
        </table>
        <tt>&nbsp;</tt>
        <p><tt><font size=+1>你可以下載<a href="http://wayne.cs.nthu.edu.tw/~roland/nn/binary.zip">執行檔</a>and<a href="http://wayne.cs.nthu.edu.tw/~roland/nn/source.zip">原始程式</a>。請注意實際上的使用者介面可能會與上面所見略有出入。</font></tt> <br><tt>&nbsp;</tt> <br><tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
        <table cols=2 width="100%">
            <tbody>
                <tr>
                    <td width=220>
                    <center><a name=ch7></a><img height=158 src="http://wayne.cs.nthu.edu.tw/~roland/nn/ch7.gif" width=202 border=0 twffan="done"></center></td>
                    <td vAlign=top>
                    <div align=right twffan="done">
                    <h1>
                    <hr width="100%">
                    <tt>So exactly how well do these programs do?&nbsp;</tt>&nbsp;
                    <hr width="100%">
                    </h1>
                    </div>
                    </td>
                </tr>
            </tbody>
        </table>
        <tt>&nbsp;</tt>
        <p><tt><font size=+1>我們作了一連串的實驗來比較測試這兩個方法與基因演算法和人腦的解題能力。首先，我們用七種已知最佳解的推銷員問題來測試各種方法及人腦，有關這七個推銷員問題的檔案我們已經放在執行檔中或可在許多其他相關的站上找到。</font></tt> <br><tt>&nbsp;</tt>&nbsp;
        <div align=right twffan="done">
        <table cellPadding=4 width="100%">
            <tbody>
                <tr vAlign=center>
                    <td bgColor=#000000>
                    <center><b><tt><font color=#ffffff><font size=+2>推銷員問題</font></font></tt></b></center></td>
                    <td bgColor=#990000>
                    <center><b><tt><font color=#ffffff><font size=+2>彈性網絡</font></font></tt></b></center></td>
                    <td bgColor=#3333ff>
                    <center><b><tt><font color=#ffffff><font size=+2>螞蟻王國</font></font></tt></b></center></td>
                    <td bgColor=#009900>
                    <center><b><tt><font color=#ffffff><font size=+2>基因演算法</font></font></tt></b></center></td>
                    <td bgColor=#993366>
                    <center><b><tt><font color=#ffffff><font size=+2>人腦（平均）</font></font></tt></b></center></td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>Att48</tt></b></td>
                    <td bgColor=#ffcccc>
                    <div align=right twffan="done"><b><tt><font size=+1>5.81%</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff>
                    <div align=right twffan="done"><b><tt><font size=+1>2.86%( 875)</font></tt></b></div>
                    </td>
                    <td bgColor=#99ff99><b><tt><font size=+1>3.0%(3256)</font></tt></b></td>
                    <td bgColor=#ffccff>
                    <div align=right twffan="done"><b><tt><font size=+1>!4.41%(7)</font></tt></b></div>
                    </td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>Berlin52</tt></b></td>
                    <td bgColor=#ffcccc>
                    <div align=right twffan="done"><b><tt><font size=+1>6.90%</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff>
                    <div align=right twffan="done"><b><tt><font size=+1>1.52%(1388)</font></tt></b></div>
                    </td>
                    <td bgColor=#99ff99><b><tt><font size=+1>7.4%(3816)</font></tt></b></td>
                    <td bgColor=#ffccff>
                    <div align=right twffan="done"><b><tt><font size=+1>!5.18%(6)</font></tt></b></div>
                    </td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>Eil101</tt></b></td>
                    <td bgColor=#ffcccc>
                    <div align=right twffan="done"><b><tt><font size=+1>9.10%</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff>
                    <div align=right twffan="done"><b><tt><font size=+1>7.64%(1488)</font></tt></b></div>
                    </td>
                    <td bgColor=#99ff99><b><tt><font size=+1>14.2%(5000)</font></tt></b></td>
                    <td bgColor=#ffccff>
                    <div align=right twffan="done"><b><tt><font size=+1>8.83%(6)</font></tt></b></div>
                    </td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>Eil51</tt></b></td>
                    <td bgColor=#ffcccc>
                    <div align=right twffan="done"><b><tt><font size=+1>3.37%</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff>
                    <div align=right twffan="done"><b><tt><font size=+1>4.41%(1115)</font></tt></b></div>
                    </td>
                    <td bgColor=#99ff99><b><tt><font size=+1>4.4%(5000)</font></tt></b></td>
                    <td bgColor=#ffccff>
                    <div align=right twffan="done"><b><tt><font size=+1>8.98%(3)</font></tt></b></div>
                    </td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>St70</tt></b></td>
                    <td bgColor=#ffcccc>
                    <div align=right twffan="done"><b><tt><font size=+1>4.16%</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff>
                    <div align=right twffan="done"><b><tt><font size=+1>3.42%( 283)</font></tt></b></div>
                    </td>
                    <td bgColor=#99ff99><b><tt><font size=+1>5.9%(4408)</font></tt></b></td>
                    <td bgColor=#ffccff>
                    <div align=right twffan="done"><b><tt><font size=+1>7.03%(3)</font></tt></b></div>
                    </td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>Ulysses16</tt></b></td>
                    <td bgColor=#ffcccc>
                    <div align=right twffan="done"><b><tt><font size=+1>1.30%</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff>
                    <div align=right twffan="done"><b><tt><font size=+1>0%(3289)</font></tt></b></div>
                    </td>
                    <td bgColor=#99ff99><b><tt><font size=+1>-0.1%( 901)</font></tt></b></td>
                    <td bgColor=#ffccff>
                    <div align=right twffan="done"><b><tt><font size=+1>!1.05%(2)</font></tt></b></div>
                    </td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>Ulysses22</tt></b></td>
                    <td bgColor=#ffcccc>
                    <div align=right twffan="done"><b><tt><font size=+1>1.57%</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff>
                    <div align=right twffan="done"><b><tt><font size=+1>0%(4562)</font></tt></b></div>
                    </td>
                    <td bgColor=#99ff99><b><tt><font size=+1>0.3%(1364)</font></tt></b></td>
                    <td bgColor=#ffccff>
                    <div align=right twffan="done"><b><tt><font size=+1>N/A</font></tt></b></div>
                    </td>
                </tr>
            </tbody>
        </table>
        </div>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<tt>&nbsp;</tt> <br><tt><font size=+1>在上面的表格中，百分比代表實驗的結果比最佳解多出多少，在螞蟻王國結果那一行百分比後的數字代表當答案找到之後的回合數，在基因演算法這一行瓜號中的數字代表子代數，而在人腦的那一行的數字則代表多少測試者參與實驗，驚嘆號代表有人找到最佳解。（至於那個奇怪的 -0.1%代表我們的最佳解檔可能有錯）</font></tt>
        <p><tt><font size=+1>螞蟻王國在七次的競賽中贏得六次，為最後總冠軍。然而我們必須指出螞蟻王國通常要花費十數倍於彈性網絡的時間。彈性網絡的困難之處在於參數調整，雖然預設的參數通常已可找到適當的解，但並不能找到一個較佳解。同時不要忘記，螞蟻的移動方向乃是取決於機率，所以有可能在下一次的執行後會有更好的解。但是對於城市數少的推銷員問題（例如最後兩組），螞蟻王國很容易就找到最佳解。附帶一提，基因演算法的參數設定為 ER operator, 500 offsprings, limit of 5000 generations, cutoff = 1.02, duration = 500, probability of crossover = 0.13, and probability of mutation = 0.05。</font></tt>
        <p><tt><font size=+1>跟電腦比起來，人腦似乎不怎麼靈光。比較起來，由人腦作出答案的變異性相當大。也就是說，有些人可以在一次的試驗就找到近乎最佳的解，但有些人僅能找到適合的解。</font></tt>
        <p><tt><font size=+1>在第二個實驗中，我們讓程式用種子數為 10，20，&#8230;100產生30個城市的推銷員問題，且不調整預設參數。螞蟻王國方面，我們用了30隻螞蟻讓它們跑1000和2000個回合，而彈性網絡則用90個點疊代1000次。實驗結果如下：</font></tt> <br><tt>&nbsp;</tt>&nbsp;
        <div align=right twffan="done">
        <table cellPadding=4 width="100%">
            <tbody>
                <tr vAlign=center>
                    <td bgColor=#000000>
                    <center><b><tt><font color=#ffffff><font size=+2>推銷員問題</font></font></tt></b></center></td>
                    <td bgColor=#990000>
                    <center><b><tt><font color=#ffffff><font size=+2>彈性網絡</font></font></tt></b></center></td>
                    <td bgColor=#3333ff>
                    <center><b><tt><font color=#ffffff><font size=+2>螞蟻王國(1000)</font></font></tt></b></center></td>
                    <td bgColor=#3333ff>
                    <center><b><tt><font color=#ffffff><font size=+2>螞蟻王國(2000)</font></font></tt></b></center></td>
                    <td bgColor=#009900>
                    <center><b><tt><font color=#ffffff><font size=+2>基因演算法</font></font></tt></b></center></td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>#1</tt></b></td>
                    <td bgColor=#ffcccc>
                    <div align=right twffan="done"><b><tt><font size=+1>4.442</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff>
                    <div align=right twffan="done"><b><tt><font size=+1>4.597( 62)</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff></td>
                    <td bgColor=#99ff99><b><tt><font size=+1>4.442(2244)</font></tt></b></td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>#2</tt></b></td>
                    <td bgColor=#ffcccc>
                    <div align=right twffan="done"><b><tt><font size=+1>4.053</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff>
                    <div align=right twffan="done"><b><tt><font size=+1>4.053(602)</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff></td>
                    <td bgColor=#99ff99><b><tt><font size=+1>4.053(2887)</font></tt></b></td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>#3</tt></b></td>
                    <td bgColor=#ffcccc>
                    <div align=right twffan="done"><b><tt><font size=+1>4.634</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff>
                    <div align=right twffan="done"><b><tt><font size=+1>4.480(367)</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff></td>
                    <td bgColor=#99ff99><b><tt><font size=+1>4.480(2117)</font></tt></b></td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>#4</tt></b></td>
                    <td bgColor=#ffcccc>
                    <div align=right twffan="done"><b><tt><font size=+1>4.744</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff>
                    <div align=right twffan="done"><b><tt><font size=+1>4.744(170)</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff><b><tt><font size=+1>4.480(1207)</font></tt></b></td>
                    <td bgColor=#99ff99><b><tt><font size=+1>4.799(2149)</font></tt></b></td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>#5</tt></b></td>
                    <td bgColor=#ffcccc>
                    <div align=right twffan="done"><b><tt><font size=+1>4.869</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff>
                    <div align=right twffan="done"><b><tt><font size=+1>4.759(994)</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff><b><tt><font size=+1>4.737(1759)</font></tt></b></td>
                    <td bgColor=#99ff99><b><tt><font size=+1>4.737(1344)</font></tt></b></td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>#6</tt></b></td>
                    <td bgColor=#ffcccc>
                    <div align=right twffan="done"><b><tt><font size=+1>4.316</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff>
                    <div align=right twffan="done"><b><tt><font size=+1>4.214(120)</font></tt></b></div>
                    </td>
                    <td bgColor=#ccffff></td>
                    <td bgColor=#99ff99><b><tt><font size=+1>4.369(1734)</font></tt></b></td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>#7</tt></b></td>
                    <td bgColor=#ffcccc><b><tt><font size=+1>5.498</font></tt></b></td>
                    <td bgColor=#ccffff><b><tt><font size=+1>5.061(467)</font></tt></b></td>
                    <td bgColor=#ccffff><b><tt><font size=+1>5.049(1365)</font></tt></b></td>
                    <td bgColor=#99ff99><b><tt><font size=+1>5.322(1083)</font></tt></b></td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>#8</tt></b></td>
                    <td bgColor=#ffcccc><b><tt><font size=+1>4.621</font></tt></b></td>
                    <td bgColor=#ccffff><b><tt><font size=+1>4.601(416)</font></tt></b></td>
                    <td bgColor=#ccffff></td>
                    <td bgColor=#99ff99><b><tt><font size=+1>4.846(1153)</font></tt></b></td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>#9</tt></b></td>
                    <td bgColor=#ffcccc><b><tt><font size=+1>4.362</font></tt></b></td>
                    <td bgColor=#ccffff><b><tt><font size=+1>4.358(250)</font></tt></b></td>
                    <td bgColor=#ccffff></td>
                    <td bgColor=#99ff99><b><tt><font size=+1>4.387(1776)</font></tt></b></td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc99><b><tt>#10</tt></b></td>
                    <td bgColor=#ffcccc><b><tt><font size=+1>5.535</font></tt></b></td>
                    <td bgColor=#ccffff><b><tt><font size=+1>5.211(139)</font></tt></b></td>
                    <td bgColor=#ccffff></td>
                    <td bgColor=#99ff99><b><tt><font size=+1>5.454(2237)</font></tt></b></td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc33><b><tt>Average</tt></b></td>
                    <td bgColor=#ff6666>
                    <div align=right twffan="done"><b><tt><font size=+1>4.707</font></tt></b></div>
                    </td>
                    <td bgColor=#66ffff>
                    <div align=right twffan="done"><b><tt><font size=+1>4.608(359)</font></tt></b></div>
                    </td>
                    <td bgColor=#66ffff><b><tt><font size=+1>4.601(629)</font></tt></b></td>
                    <td bgColor=#33ff33><b><tt><font size=+1>4.689(1972)</font></tt></b></td>
                </tr>
                <tr align=right>
                    <td bgColor=#ffcc33><b><tt>Variance</tt></b></td>
                    <td bgColor=#ff6666><b><tt><font size=+1>0.236</font></tt></b></td>
                    <td bgColor=#66ffff><b><tt><font size=+1>0.128</font></tt></b></td>
                    <td bgColor=#66ffff><b><tt><font size=+1>0.125</font></tt></b></td>
                    <td bgColor=#33ff33><b><tt><font size=+1>0.192</font></tt></b></td>
                </tr>
            </tbody>
        </table>
        </div>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<tt>&nbsp;</tt> <br><tt><font size=+1>上表明顯地指出螞蟻王國較彈性網絡優秀。螞蟻王國在1000個回合後的平均長度比彈性網絡短了 1.88%。而且螞蟻王國常可在較少的回合數時，就已得到較佳的解。對那些雞蛋裡挑骨頭的統計家們來說，他們可能會挑剔樣本數不足，取樣方式的粗略，當然，如果時間允許的話，我們會很樂意地去試一百萬次，不幸的，這是不可能的。</font></tt>
        <p><tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
        <table cols=2 width="100%">
            <tbody>
                <tr>
                    <td width=220>
                    <center><a name=ch8></a><img height=158 src="http://wayne.cs.nthu.edu.tw/~roland/nn/ch8.gif" width=202 border=0 twffan="done"></center></td>
                    <td vAlign=top>
                    <div align=right twffan="done">
                    <h1>
                    <hr width="100%">
                    <tt>Anything else?&nbsp;</tt>&nbsp;
                    <hr width="100%">
                    </h1>
                    </div>
                    </td>
                </tr>
            </tbody>
        </table>
        <tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
        <h2><b><i><tt><font size=+1>1. 限制</font></tt></i></b></h2>
        <tt><font size=+1>彈性網絡最明顯的缺點就是它只能解平面上的推銷員問題。這意味著彈性網絡不能解決較實際的非對稱推銷員問題（a到b的距離不等於b到a的距離）。除此之外，彈性網絡對於均勻分散的點，會有較佳的表現，假如一些城市聚集在一塊小區域，就麻煩大了。</font></tt>
        <p><tt><font size=+1>跟郝伯非爾德和坦克的類神經網路模型比較起來，彈性網絡至少能求得一個還不錯的解。雖然郝伯非爾德和坦克的類神經網路模型可以運用到其他的最佳組合問題，但離實際的工業級應用還有一大段路要走。</font></tt> <br><tt>&nbsp;</tt>
        <h2><b><i><tt><font size=+1>2. 平行化</font></tt></i></b></h2>
        <tt><font size=+1>彈性網絡和螞蟻系統的本質就是平行處理。彈性網絡的疊代運算可轉換成一次微分方程式。而螞蟻王國與生俱來就是平行化偏執狂的寶貝。把螞蟻當作各個處理器中的程序或執行緒，而螞蟻（程序或執行緒）溝通的方式是透過地圖及費洛蒙（就像共享記憶體）。</font></tt> <br><tt>&nbsp;</tt>
        <h2><b><i><tt><font size=+1>3. 類神經網路的極限</font></tt></i></b></h2>
        <tt><font size=+1>在讀過上面這麼多關於以類神經方式解決推銷員問題的無聊東西之後，你可能會懷疑類神經網路對解決這類問題的極限。不幸地，答案令人沮喪。根據一篇非常「數學化」與非常「分析化」的論文[8] 指出（裡頭有提到退火型網路動能的線性分析，這是什麼鬼東西？），類神經網路適合去解平面的推銷員問題，而非一般的非對稱型推銷員問題。這篇論文已經不是普通人看得下去的，真有興趣，請自行至圖書館查閱。</font></tt>
        <p><tt><font size=+1>比起上一段所提到的彈性網絡與郝伯非爾德和坦克的類神經網路模型，螞蟻王國要來得強韌多了，至少不受限於平面的推銷員問題。螞蟻王國已經有很多成功地應用在其他最佳組合問題上（包括各種推銷員問題的變形），實驗結果也指出它優於彈性網絡。欲知詳情，請到<a href="http://iridia.ulb.ac.be/dorigo/ACO/ACO.html">螞蟻王國的首頁</a>。</font></tt> <br><tt>&nbsp;</tt>
        <h2><b><i><tt><font size=+1>4. 人腦對電腦</font></tt></i></b></h2>
        <tt><font size=+1>人類是否能在推銷員問題或其他相似的問題上打敗電腦，是個非常有趣的問題。討論這個問題的論文並不多，然而，我們還是發現一篇有趣的論文。兩位英國的研究員，馬克葛蕾格（J. N. MacGregor）及歐馬洛德（T. Ormerod）， 已經作了一些以人腦來解推銷員問題的實驗。他們發現，在小型的推銷員問題上（10至20個城市），人腦的表現和電腦不相上下。而且人腦所找到的幾乎都是最佳解，而電腦找到的卻只是接近最佳解。依我們的小小一點意見，電腦可能是輸在演算法的選擇上：最佳的（林－克尼根）及最先進的（如模擬退火、基因演算法和螞蟻王國等）演算法因不接近人類對推銷員問題的認知而不被採用。作者最後的評論是：由於缺乏誘因，很難對受測者進行大型的推銷員問題實驗。想像是你要來解一個1000個城市的推銷員問題，那真是呆斃了！</font></tt>
        <p><tt><font size=+1>重點在於，推銷員問題（對人類而言）的困難度在於內部點的多寡（外接凸邊型內的點），而非全部的點數。因此，科學家們可能會問：為什麼不抓幾隻猴子來解解看推銷員問題，看看是不是有同樣的結論？沒想到真的有人在做這方面的研究：已經有許多論文談到猴子及黑猩猩解推銷員問題的實驗。結論是，即使是動物也有解決簡單的推銷員問題的基本智能。例如，猴子們會一次考慮接下來的兩三個點，而不是只考慮離牠最近的一點。這些論文都能在「實驗生物學月刊」（Journal of Experimental Biology） 其中一篇論文[10]的參考資料中找到。或者，你可以到<a href="http://www.maa.org/mathland/mathland_7_7.html">依伐司‧彼得森的數學島</a>，其中有一篇簡介這類實驗的短文。</font></tt> <br><tt>&nbsp;</tt>
        <h2><i><tt><font size=+1>5. 進展</font></tt></i></h2>
        <tt><font size=+1>許多研究者都致力於改良彈性網絡和螞蟻王國。其中將‧凡‧登‧柏格（Jan Van Den Berg）等設計了一套非等距的彈性網絡，但是這個新花招在多於30個城市時，就輸給原來的彈性網絡（敗軍之將就不必列出來了），而其他則多半嘗試加快收斂的速度[6,7]。</font></tt>
        <p><tt><font size=+1>在螞蟻王國的第一篇論文中，馬可也嘗試了其他兩個叫做「螞蟻－密度」及「螞蟻－數量」的方法。這兩個方法與原始方法的主要差異在於每隻螞蟻分泌費洛蒙的時機（走一步就留一點，而不是等到全部走完再分）。而這兩個方法之間的差異在於螞蟻分泌的費絡蒙量。對「螞蟻－密度」來說，每隻螞蟻每一步都留下固定的費絡蒙量，而「螞蟻－數量」所留下的費絡蒙量是與每一步的距離成正比。但是結果顯示，這兩種方法還是沒有比原來的螞蟻王國好。</font></tt>
        <p><tt><font size=+1>柏恩德‧布恩海默（ Bernd Bullnheimer）等人提出了一個「菁英螞蟻」的構想。就是讓找到較佳解的螞蟻（菁英螞蟻）分泌比其他螞蟻更多的費絡蒙，此外也可以只讓最佳的 <i>k</i>隻螞蟻分泌 ，並將他們的解依大小加權。這的確是一個正確的方向。這個方法可以將螞蟻王國所找到的解從沒有「菁英螞蟻」前的1.02%降到有「菁英螞蟻」後的 0.31% （與最佳解比較），這不是挺好的嗎？</font></tt>
        <p><tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
        <table cols=2 width="100%">
            <tbody>
                <tr>
                    <td width=220>
                    <center><a name=ch9></a><img height=158 src="http://wayne.cs.nthu.edu.tw/~roland/nn/ch9.gif" width=202 border=0 twffan="done"></center></td>
                    <td vAlign=top>
                    <div align=right twffan="done">
                    <h1>
                    <hr width="100%">
                    <tt>The Vault&nbsp;</tt>&nbsp;
                    <hr width="100%">
                    </h1>
                    </div>
                    </td>
                </tr>
            </tbody>
        </table>
        <tt>&nbsp;</tt> <br><tt>&nbsp;</tt>
        <ul>
            <li><font size=+1><b><font color=#ff0000>[1]</font></b> J. J. Hopfield and D. W. Tank. Neural computation of decision in optimization problems. Biological Cybernetics, 52:141-152, 1985.</font>
            <li><font size=+1><b><font color=#ff0000>[2]</font></b> G. V. Wilson and G. S. Pawley. On the stability of the traveling salesman problem algorithm of Hopfiled and Tank. Biological Cybernetics, 58:63-70, 1988.</font>
            <li><font size=+1><b><font color=#ff0000>[3]</font></b> Kohonen T. Self-organization and associative memory. Springer-Verlag, Berlin, 1984.</font>
            <li><font size=+1><b><font color=#ff0000>[4]</font></b> Bernard Angeniol, Gael La Croix Vaubois, and Jean-Yves Le Texier. Self-organizing maps and the traveling salesman problem. Neural Networks, 1:289-293, 1988.</font>
            <li><font size=+1><b><font color=#ff0000>[5]</font></b> R. Durbin and D. Willshaw. An analogue approach to the traveling salesman problem using an Elastic Net method. Nature, 326:689-691, 1987.</font>
            <li><font size=+1><b><font color=#ff0000>[6]</font></b> D. J. Burr. An improved Elastic Net method for the traveling salesman problem. Proceedings of the IEEE International Conference on Neural Networks, San Diego, CA, :69-76, 1988.</font>
            <li><font size=+1><b><font color=#ff0000>[7]</font></b> M. C. S. Boeres and L. A. V. De Carvalho. A faster Elastic Net algorithm for the traveling salesman problem. Proceedings of the International Joint Conference on Neural Networks, Baltimore, MD. II:215-220, 1992.</font>
            <li><font size=+1><b><font color=#ff0000>[8]</font></b> Andrew H. Gee and Richard W. Prager. Limitations of Neural networks for solving traveling salesman problems. IEEE transactions on neural networks, Vol. 6, No. 1, pp. 280-282, January, 1995.</font>
            <li><font size=+1><b><font color=#ff0000>[9]</font></b> J. N. MacGregor and T. Ormerod. Human performance on the traveling salesman problem. Department of Human Sciences, Loughborough University of Technology, United Kingdom.</font>
            <li><font size=+1><b><font color=#ff0000>[10]</font></b> C. R. Gallistel and Audrey E. Cramer. Computations on metric maps in mammals: getting oriented and choosing a multi-destination route. The Journal of Experimental Biology. 199:211-217, 1996.</font>
            <li><font size=+1><b><font color=#ff0000>[11]</font></b> Marco Dorigo, Vittorio Maniezzo, and Alberto Colorni. The Ant System: optimization by a colony of cooperating agents. IEEE Transactions on System, Man, and Cybernetics. Vol. 26, No. 1, pp. 1-13, 1996.</font>
            <li><font size=+1><b><font color=#ff0000>[12]</font></b> Bernd Bullnheimer, Richard F. Hartl, and Christine Strauss. A new rank based version of the Ant System - a computational study. Institute of Management Science, University of Vienna, 1997.</font>
            <li><b><font color=#ff0000><font size=+1>[13...]</font></font></b> <font size=+1>Other papers not directly related to this topic are classified and destroyed!</font> <br><tt>&nbsp;</tt></li>
        </ul>
        <b><i><tt><font size=+1>這些真是無聊透頂了，帶我去些好玩的地方吧&#8230;</font></tt></i></b>
        <ul><tt>&nbsp;</tt>
            <li><tt><font size=+1><a href="http://www.patol.com/java/TSP/index.html">TSP by Kohonen SOM</a> (爪哇程式與原始碼) @ Patol.</font></tt>
            <li><tt><font size=+1><a href="http://nuweb.jinr.dubna.su/LNP/NEMO/tspN.html">TSP by Elastic Net</a> (爪哇程式與原始碼，彈性網絡詳解) @ Laboratory of Nuclear Problems, Dubna, Russia.</font></tt>
            <li><tt><font size=+1><a href="http://wayne.cs.nthu.edu.tw/~roland/computer/javanotes/jant_source.html">TSP by Ant Colony</a> (螞蟻王國的爪哇程式與原始碼，我寫的唷) @ Roland's Brain, Taiwan</font></tt>
            <li><tt><font size=+1><a href="http://iridia.ulb.ac.be/dorigo/ACO/ACO.html">Ant Colony Optimization</a> (螞蟻王國的首頁) @ <a href="http://iridia.ulb.ac.be/">IRIDA</a>, Italy.</font></tt>
            <li><tt><font size=+1><a href="http://rfhs8012.fh-regensburg.de/~saj39122/jfroehl/diplom/e-main.html">Neural Networks with Java</a> (有發展類神經網路的爪哇程式庫) @ somewhere in German (有一個棒極了的<a href="http://rfhs8012.fh-regensburg.de/~saj39122/jfroehl/diplom/e-sample.html">範例</a>：<b>3D Kohonen Feature Map solving 3D TSP</b>).</font></tt>
            <li><tt><font size=+1><a href="http://www.aist.go.jp/NIBH/~b0616/Lab/Links.html">Java Applets for NN and AI</a> (有很多有趣的爪哇程式和鍊結) @ <a href="http://www.aist.go.jp/">AIST</a>, Japan.</font></tt>
            <li><tt><font size=+1><a href="http://www.ing.unlp.edu.ar/cetad/mos/TSPBIB_home.html">TSPBIB</a> and <a href="http://www.iwr.uni-heidelberg.de/iwr/comopt/soft/TSPLIB95/TSPLIB.html">TSPLIB</a> (每一個對推銷員問題有興趣的人第一個該去的地方)</font></tt> </li>
        </ul>
        <i><font size=+1>Pastewrong(c) 1997 December. All wrongs reversed. Last updated at Dec. 28, 1997.</font></i> <br><i><font size=+1>Please send all your praise to <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#111;&#108;&#97;&#110;&#100;&#64;&#116;&#112;&#116;&#115;&#49;&#46;&#115;&#101;&#101;&#100;&#46;&#110;&#101;&#116;&#46;&#116;&#119;">me</a>, and send all your complaint and critique to <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#112;&#114;&#101;&#115;&#105;&#100;&#101;&#110;&#116;&#64;&#119;&#104;&#105;&#116;&#101;&#104;&#111;&#117;&#115;&#101;&#46;&#103;&#111;&#118;">him</a>.</font></i><img src ="http://www.cnblogs.com/edison1024/aggbug/413411.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42801/" target="_blank">[新闻]百付宝加入战团 电子支付市场寻突破</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>遗传算法学习笔记</title><link>http://www.cnblogs.com/edison1024/archive/2006/05/29/412104.html</link><dc:creator>edison1024</dc:creator><author>edison1024</author><pubDate>Mon, 29 May 2006 07:31:00 GMT</pubDate><guid>http://www.cnblogs.com/edison1024/archive/2006/05/29/412104.html</guid><wfw:comment>http://www.cnblogs.com/edison1024/comments/412104.html</wfw:comment><comments>http://www.cnblogs.com/edison1024/archive/2006/05/29/412104.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/edison1024/comments/commentRss/412104.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/edison1024/services/trackbacks/412104.html</trackback:ping><description><![CDATA[<p>关键词</p>
<p>染色体 chromosome<br>脱氧核糖核酸 deoxyribonucleic acid DNA<br>核糖核酸 ribonucleic aicd RNA<br>遗传因子 gene<br>遗传子型 genotype<br>表现型 phenotype<br>基因座 locus<br>个体 individual<br>种群 population<br>进化 evolution<br>适应度 fitness<br>选择 selection<br>复制 reproduction<br>交叉 crossover<br>变异 mutation<br>编码 coding<br>解码 decoding</p>
<p><br>设计和选择编码方法指南，9个特性<br>完全性 completeness<br>封闭性 closure<br>紧致性 compactness<br>可扩展性 scalability<br>多重性 multiplicity<br>个体可塑性 flexibility<br>模块性 modularity<br>冗余性 redundancy<br>复杂性 complexity</p>
<p>满意特性 完全性 可测性和复杂性</p>
<p>遗传算法在进化搜索中基本不利用外部信息，仅以适应度函数fitness function为依据，<br>利用种群中每个个体的适应度值来进行搜索。因此fitness function选取直接影响到遗传<br>算法的收敛速度以及能否找到最优解。适应度函数设计不当有可能造成遗传算法的欺骗性<br>问题。</p>
<p>适应度函数的设计主要满足</p>
<p>1、单值、连续、非负、最大化<br>2、合理、一致性<br>3、计算量小<br>4、通用性强 可选</p>
<p>适应度函数的尺度变换包括<br>1、线性变换<br>2、幂函数变换<br>3、指数变换</p>
<p>选择selection<br>1、选择压力 selection pressure<br>2、偏差 bias<br>3、个体扩展 spread<br>4、多样化损失 loss of diversity<br>5、选择强度 selection intensity<br>6、选择方差 selection variance</p>
<p>个体选择概率的常用分配方法<br>1、按比例的适应度分配 proportional fitness assignment<br>2、基于排序的适应度分配 ran-based fitness assignement</p>
<p>常用选择方法</p>
<p>1、轮盘赌选择法 roulette wheel selection<br>2、随机遍历抽样法 stochastic universal sampling<br>3、局部选择法 local selection<br>4、锦标赛选择法 tournament selection</p>
<p>&nbsp;</p>
<p>提高遗传算法性能的选择方法<br>1、稳态繁殖 steady state reproduction<br>2、没有重串的稳态繁殖 staeady state reproduction without duplicates</p>
<p>交叉/基因重组 crossover/recombination<br>1、实值重组<br>(1)离散重组<br>(2)中间重组<br>(3)线性重组<br>2、二进制交叉<br>(1)单点交叉<br>(2)多点交叉<br>多点交叉的思想源于控制个体特定行为的染色体表示信息的部分无须包含于邻近的子串中，<br>多点交叉的破坏性可以促进解空间的搜索，而不是促进过早地收敛。因此搜索更加健壮。<br>(3)均匀交叉<br><br><br>to be continue</p><img src ="http://www.cnblogs.com/edison1024/aggbug/412104.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42800/" target="_blank">[新闻]邮件标准协议英文独占时代终结</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>第一个 NP-complete 问题(转)</title><link>http://www.cnblogs.com/edison1024/archive/2006/05/19/403986.html</link><dc:creator>edison1024</dc:creator><author>edison1024</author><pubDate>Fri, 19 May 2006 00:23:00 GMT</pubDate><guid>http://www.cnblogs.com/edison1024/archive/2006/05/19/403986.html</guid><wfw:comment>http://www.cnblogs.com/edison1024/comments/403986.html</wfw:comment><comments>http://www.cnblogs.com/edison1024/archive/2006/05/19/403986.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/edison1024/comments/commentRss/403986.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/edison1024/services/trackbacks/403986.html</trackback:ping><description><![CDATA[NP 是 Non-deterministic Polynomial 的缩写,NP 问题通俗来说是其解的正确性能够被很容易检查的问题, 这里"很容易检查"指的是存在一个多项式检查算法. <br><br>例如, 著名的推销员旅行问题(Travel Saleman Problem or TSP):假设一个推销员需要从香港出发, 经过广州, 北京, 上海,....., 等 n 个城市， 最后返回香港。 任意两个城市之间都有飞机直达， 但票价不等。现在假设公司只给报销 $C 块钱, 问是否存在一个行程安排，使得他能遍历所有城市，而且总的路费小于 $C ? <br><br>推销员旅行问题显然是 NP 的. 因为如果你任意给出一个行程安排, 可以很容易算出旅行总开销. 但是, 要想知道一条总路费小于 $C 的行程是否存在, 在最坏情况下, 必须检查所有可能的旅行安排! 这将是个天文数字.<br><br><b style="COLOR: black; BACKGROUND-COLOR: #ffff66">NP-complete</b> 问题是所有 NP 问题中最难的问题. 它的定义是, 如果你可以找到一个解决某个 <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">NP-complete</b> 问题的多项式算法, 那么所有的 NP 问题都将可以很容易地解决. <br><br>通常证明一个问题 A 是 <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">NP-complete</b> 需要两步, 第一先证明 A 是 NP 的, 即满足容易被检查这个性质; 第二步是构造一个从某个已知的 <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">NP-complete</b> 问题 B 到 A 的多项式变换, 使得如果 B 能够被容易地求解, A 也能被容易地 解决. 这样一来, 我们至少需要知道一个 <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">NP-complete</b> 问题. <br><br>第一个 NP complete 问题是 SAT 问题, 由 COOK 在 1971 年证明. SAT 问题指的是, 给定一个包含 n 个布尔变量(只能为真或假) X1, X2, .., Xn 的逻辑析取范式, 是否存在它们的一个取值组合, 使得该析取范式被满足? 可以用一个具体例子来说明这一问题, 假设你要安排一个 1000 人的晚宴, 每桌 10 人, 共 100 桌. 主人给了你一张纸, 上面写明其中哪些 人因为 江湖恩怨不能坐在同一张桌子上, 问是否存在一个满足所有这些约束条件的晚宴安排? 这个问题显然是 NP 的, 因为如果有人建议一个安排方式, 你可以很容易检查它是否满足所有约束. COOK 证明了这个问题是 <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">NP-complete</b> 的, 即如果你有一个好的方法能解决晚宴安排问题, 那你就能解决所有的 NP 问题. <br><br>这听起来很困难, 因为你必须面对所有的 NP 问题, 而且现在你并不知道任何的 <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">NP-complete</b> 问题可以利用.COOK 用非确定性图灵机( Non-deterministic Turing Machine ) 巧妙地解决了这一问题. <br><br>正式地, NP 问题是用非确定性图灵机来定义的, 即所有可以被非确定性图灵机在多项式时间内解决的问题. 非确定性图灵机是一个特殊的图灵机, 它的定义抓住了"解容易被检查" 这一特性. 非确定性图灵机有一个"具有魔力的"猜想部件, 只要问题有一个解, 它一定可以猜中. 例如, 只要存在哪怕一个满足约束的晚宴安排方式, 或是一个满足旅行预算的行程安排, 都无法逃过它的法眼, 它可以在瞬间猜中. 在猜出这个解以后,检查确认部分和一台普通的确定性图灵机完全相同,也即是等价于任何一个实际的计算机程序. <br><br>COOK 证明了,任意一个非确定性图灵机的计算过程,即先猜想再验证的过程, 都可以被描述成一个 SAT 问题,这个 SAT 问题实际上总结了该非确定性图灵机在计算过程中必须满足的所有约束条件的总和(包括状态转移, 数据读写的方式等等), 这样, 如果你有一个能解决该 SAT 问题的好的算法, 你就可以解决相应的那个非确定性图灵机计算问题, 因为每个 NP 问题都不过是一个非确定性图灵机计算问题, 所以, 如果你可以解决 SAT , 你就可以解决所有 NP 问题. 因此, SAT 是一个 <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">NP-complete</b> 问题. <br><br>有了一个 <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">NP-complete</b> 问题, 剩下的就好办了, 我们不用每次都要和非确定性图灵机打交道, 而可以用前面介绍的两步走的方法证明其它的 <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">NP-complete</b> 问题. 迄今为止, 人们已经发现了成千上万的<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">NP-complete</b> 问题, 它们都具有容易被检查的性质, 包括前面介绍的推销员旅行问题. 当然更重要的是, 它们是否也容易被求解, 这就是著名的 P vs NP 的问题.<img src ="http://www.cnblogs.com/edison1024/aggbug/403986.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42799/" target="_blank">[新闻]2008年10月6日科技博客精选</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>