我笔下的交大
01 Mar 2013第一次参试在OpenStreetMap画图,昨天花了一晚上完成西南交大犀浦校区。直接输出的图片如下
退火算法主要是解决NP完成问题需要便利所有解空间才能计算出最优解
// SA.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <math.h>
#include <stdlib.h>
#include <Windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
double Test[100000];
int i=0;
for (i=0;i<100000;i++)
{
Test[i] = rand() % 1000;
}
int nStart = GetTickCount();
double nMax = 0;
for (i=0;i<100000;i++)
{
if (nMax<Test[i])
{
nMax = Test[i];
}
}
int nEnd = GetTickCount();
// 遍历得到的最大值
printf( "Max is %f, use %d\n", nMax ,nEnd-nStart);
nStart = GetTickCount();
double nCur = 0; //当前解
double nNext = 0; //下一解
double T = 10000; //初始温度
double T_min = 0.0001; //最终温度
double r = 0.9; //温度衰减率
double dE = 0; //
i=0;
while( T > T_min )
{
nNext = Test[i+1]; //获取下一个解
dE = nNext - nCur ; //解的差值
if ( dE >= 0 ) //表达移动后得到更优解,则总是接受移动
nCur = nNext ; //接受从Y(i)到Y(i+1)的移动
else
{
// 函数exp( dE/T )的取值范围是(0,1) ,dE/T越大,则exp( dE/T )也越大
double sd = exp( (double)dE/T );
double ran = (double)rand() / RAND_MAX; // 这里使用随机数表示已一定的概率接受
if ( sd > ran)
nCur = nNext ; //接受从Y(i)到Y(i+1)的移动
}
T = r * T ; //降温退火 ,0<r<1 。r越大,降温越慢;r越小,降温越快
/*
* 若r过大,则搜索到全局最优解的可能会较高,但搜索的过程也就较长。若r过小,则搜索的过程会很快,但最终可能会达到一个局部最优值
*/
i ++ ;
if (i==100000)
{
break;
}
}
nEnd = GetTickCount();
// 模拟退火得到的
printf( "SA Max is %f, use %d\n", nCur,nEnd-nStart );
return 0;
}
参考资料
大白话解析模拟退火算法
http://www.cnblogs.com/heaad/archive/2010/12/20/1911614.html
模拟退火算法
系统环境Ubuntu
安装ruby
(irb ri可选)
sudo apt-get install ruby ruby-dev
测试ruby
ruby -v
到这ruby就安装好了,不熟悉ruby的可以体验下
安装rails
依赖的程序 sqlite3
nodejs
sudo apt-get install sqlite3 libsqlite3-dev nodejs
安装rails
sudo gem install rails
测试rails
rails -v
创建一个rails
工程
rails new mytest
进入工程
cd mytest
启动服务(可以按Ctrl+C停止服务)
rails server
测试服务
http://localhost:3000
停止服务
Ctrl+C
利用脚手架(scaffolded)建立一个叫Photo资源(scaffolded 非常方便)
rails generate scaffold Photo url:string source_id:integer votes:integer
整合数据库
rake db:migrate
启动服务
rails server
测试Photo资源
http://localhost:3000/photos
在这里你可以对photos表进行操作,我已经添加了两条记录。
另外还可以通过 http://localhost:3000/photos.json 得到json格式的数据
我们好像什么代码页没写,就做出一个web程序。下面我们看看其实现原理
rails
是MVC
结构的
model
一般就是数据结构
controller
是负责整个应用的逻辑
view
用于数据展示。
mytest目录下有下面几个重要的文件
app/models
里面 photo.rb ,里面是个对应photo表的类
app/views
里面包含一个photos的文件夹,在里面就是显示、添加、修改、删除等html界面
app/controllers
里面有个叫 photos_controller.rb,里面包含对 photo表的显示、添加、修改、删除等操作。
这些就是完成上面功能的核心。
nginx
检出最新代码
svn checkout svn://svn.nginx.org/nginx/trunk
进入代码目录
cd trunk
运行configure 最新代码要在auto目录外面运行,prefix参数看你自己需要设置
./auto/configure --prefix=/opt/hanchao/nginx/
编译
make
安装
make install
进入安装好的目录
cd /opt/hanchao/nginx/sbin
启动web服务
./nginx
提示80端口被使用修改conf/nginx.conf找到listen 80,改为listen 8010后重新启动 测试
http://10.15.5.51:8010/
关闭web服务
./nginx -s stop
最近部门出现一些坏味道,产品规划不清晰,人才流失严重。作为导航事业部的核心产品SNE,经过这么多年的发展,它的价值到底在哪,它能为部门带来什么,它的未来到底在哪?做平台,做大众,做行业,做在线,做运营?超图导航需要一次怎样的重构转型,公司又能给部门多少支持和时间?
最近重新翻出08年gis-thinker在3Snews发表的一篇文章《超图SNE的“死路”分析》,现在读来却相当值得思考。它说的可不是什么路径算法问题,而是产品定位和经营策略问题。
超图导航开发引擎,目的是开发一个导航领域的二次开发平台,用户能够借助这个二次开发平台来开发自己的导航软件和产品。这看上去很美,而在导航产业链中,从最基础的地图数据,到地图数据的渲染加工,再到导航软件的开发,到硬件产品的订制,数据加密,最后是数据和软件的灌装,再到发布,其中最没有发言权和市场份额的,就是这个导航引擎厂商了。
卖许可。可是在盗版这么猖獗的国度,做通用软件是注定不可能有大的发展的,金山苦撑了多少年?其他的通用软件,哪个真正发展壮大了?我们缺乏这样的土壤。超图目前的主打产品,走行业应用, 在各类政府及企业的信息化项目中应用,这样是可以的,但是一个通用软件靠卖许可来赚钱,在中国还没有一个先例。
要么是向服务运营转型,比如金山现在做网游运营,要么就是朝项目的行业应用转型,变成导航类项目的平台软件。要么,就是被数据厂商或者硬件厂商收购,成为御用软件开发团队。
超图导航该怎么走才好?
向左走,向右走?