tcogh327 发表于 2005-10-10 22:41:33

太长了,太专业了,看不懂。这个和分布式有关系吗?
谁能简单介绍一下?

碧城仙 发表于 2005-10-11 11:06:14

引用 tcogh327 在 2005-10-10 22:41 时的帖子:
太长了,太专业了,看不懂。这个和分布式有关系吗?
和分布式没多大关系吧……主要是讲的一种编程中的自适应智能算法。

zengyuo 发表于 2005-10-14 15:20:13

其实,什么是分布式计算啊!

我不是很了解啊.我曾经在报纸看过啊!

碧城仙 发表于 2005-10-14 18:00:29

引用 zengyuo 在 2005-10-14 15:20 时的帖子:
什么是分布式计算啊!
请浏览本站新手指南(http://www.equn.com/info/)和项目介绍(http://www.equn.com/distributed/)子站。

Sirit 发表于 2005-11-27 15:03:45

嗯,以前看到过介绍,收藏一下。


看看可以有什么具体的应用。

wangqin0909 发表于 2005-12-25 18:08:10

这些文章基本都是国内学者写的,建议大家多参考点国际上知名期刊的蚁群算法文章,国际上的文章更加深入、更加系统!

tcogh327 发表于 2006-1-16 16:47:52

就怕看不懂,最近准备在这方面扫扫盲,DX们可有推荐?(遗传算法,蚁群算法,神经网络)

monachen 发表于 2006-1-17 19:01:12

下载中,谢谢

tcogh327 发表于 2006-1-17 21:49:45

我在一个研究神经网络与人工智能的网站也看到大仙的这篇文章。

oxiaomio2010 发表于 2011-2-15 18:11:58

各位大虾 我用电驴 下不来啊 可不可以麻烦下载到的 发到我邮箱771461217@qq.com急用感谢啊

碧城仙 发表于 2011-2-18 14:50:41

回复 25# oxiaomio2010

失效好多年了,当年我是在学校图书馆,上维普和万方上搜索了下载的,然后压了一个包放在电驴上的。

tonyga 发表于 2011-8-13 15:42:30

现在没了吗?哪里还可以再看啊

refla 发表于 2012-5-5 17:32:52

回复 27# tonyga

http://www.verycd.com/topics/46263/

我上个月刚下载过。。。

refla 发表于 2012-5-5 17:48:39

本帖最后由 refla 于 2012-5-5 17:50 编辑

我写了一个 MMAS 的程序,供大家一起讨论与学习,限于篇幅,这里只给出程序主架构,完成程序我已经打包上传,供大家下载。struct _tsptsp;

void fuck_tsp()
{
implement_mmas_plan();
output( FLAG_SO_FAR_BEST );
}

void implement_mmas_plan()// enterance
{
initialize();

int iteration = 0;
while( ! dose_meet_termination_condition( iteration ) )
{
    printf( "interation %d ", iteration );

    construct_solutions( iteration );
    local_search();// optional
    update_statistics();
    update_pheromone_trails();

    output( FLAG_ITERATION_BEST );
    iteration++;
}// while( ! dose_meet_termination_condition() )
}

void initialize()
{
set_default_parameters();
tsp.random_seed = (long) time( NULL );
tsp.so_far_best_ant.tour_length = NO_ROUTE;

read_instance();
compute_primary_info();
}

void set_default_parameters()
{
tsp.parameter.alpha = 1;
tsp.parameter.beta = 2;
tsp.parameter.rou = 0.02;
tsp.parameter.quantity = 1.0;

tsp.parameter.tau_min_factor = 0.2;
tsp.parameter.tau_max = 1.0;
tsp.parameter.tau_min = tsp.parameter.tau_max * tsp.parameter.tau_min_factor;
}

void construct_solutions(int iteration)
{
struct _ant*ant = tsp.ant;

int k;
for( k = 0; k < tsp.parameter.ants; k++ )// to empty the memory of ants
{
    memset( ant[ k ].visited, FLAG_UNVISITED, sizeof(int) * (MAX_CITIES + 1) );
    ant[ k ].visited[ tsp.cities ] = iteration;
}

for( k = 0; k < tsp.parameter.ants; k++ )// to place ants
{
    int start = pickup_start_city();
    ant[ k ].tour[ 0 ] = start;
    ant[ k ].visited[ start ] = FLAG_VISITED;
}

int step = 1; // The start city has been determined.
while( step < tsp.cities )
{
    for( k = 0; k < tsp.parameter.ants; k++ )
      tour( k, step );

    step++;
}

for( k = 0; k < tsp.parameter.ants; k++ )
{
    ant[ k ].tour[ tsp.cities ] = ant[ k ].tour[ 0 ];
    compute_tour_length( ant + k );
}
}

int pickup_start_city()
{
intresult = (int)( Oh_Fortuna() * tsp.cities );
returnresult;
}


void tour(int k, int step)
{
struct _ant*ant = tsp.ant;

inti = ant[ k ].tour[ step - 1 ];
double sum_probabilities = 0.0;
double selection_probability[ MAX_CITIES ];

int j;
for( j = 0; j < tsp.cities; j++ )
    if( ant[ k ].visited[ j ] )
      selection_probability[ j ] = 0.0;
    else
    {
      selection_probability[ j ] = tsp.choice_info[ i ][ j ];
      sum_probabilities += selection_probability[ j ];
    }

double roulette_wheel = Oh_Fortuna() * sum_probabilities;

j = 0;
double p = selection_probability;
while( p < roulette_wheel )
{
    j++;
    p += selection_probability;
}

ant.tour[ step ] = j;
ant.visited = FLAG_VISITED;
}


void update_statistics()
{
double rou = tsp.parameter.rou;
double quantity = tsp.parameter.quantity;
double tau_max = tsp.parameter.tau_max;
double tau_min = tsp.parameter.tau_min;
double tau_min_factor = tsp.parameter.tau_min_factor;

struct _ant *ant = tsp.ant;
struct _ant *iter_ant = &( tsp.iteration_best_ant );
struct _ant *sofar_ant = &( tsp.so_far_best_ant );

intk = find_iteration_best();
memcpy( iter_ant, ant+k, sizeof( struct _ant ) );
if( iter_ant->tour_length < sofar_ant->tour_length )
{
    memcpy( sofar_ant, ant+k, sizeof( struct _ant ) );
    tau_max = quantity / ( rou * sofar_ant->tour_length );
    tau_min = tau_max * tau_min_factor;
}
}

void update_pheromone_trails()
{
mmas_pheromone_update();
}

void mmas_pheromone_update()
{
evaporate_pheromone();

struct _ant*elite_ant = &( tsp.iteration_best_ant );
if( dose_use_so_far_best_ant() )
    elite_ant = &( tsp.so_far_best_ant );

deposit_pheromone( elite_ant );// MMAS allows only one ant to deposit its pheromone.
limit_pheromone();

compute_choice_information();
}

void output(int which)
{
static conststruct _ant*ant = { &( tsp.so_far_best_ant ), &( tsp.iteration_best_ant ) };
static constchar *hint =
{
    "\nAt last, the best tour length is %d.\n",
        "length = %d\n"
};

printf( hint[ which ], ant[ which ]->tour_length );
printf( "route: " );

intstep;
for( step = 0;step <= tsp.cities; step++ )
    printf( "%d ", ant[ which ]->tour[ step ] );

printf( "\n" );
}

acp134 发表于 2012-5-5 18:15:35

都是考古学家啊有木有
页: 1 [2] 3
查看完整版本: “蚁群算法”学习包下载

论坛官方淘宝店开业啦~
欢迎大家多多支持基金会~