led车道灯:java 程序提问

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/03 05:09:06
import java.io.*;
class find_after_city
{
public int ant_id;
public int next_city_possible_number;
public int city_number;
public int ant_speed;
public int current_city;
public double timeduring;
public int i;
public int ant_number;
public int after_city;
public int bb;
public int bbb;
public int s;
public int m;
public double ran;
public double hormone_total_value;
public int [][] way=new int[ant_number*2][city_number+3];
public int [] possible_city=new int [city_number];
public double [][][] city_link=new double[city_number+1][city_number+1][2];

public find_after_city(int ant_id,int distance_between_two_city,int way[][],int city_number,int ant_speed,int current_city,int i,int number_of_city_ant_has_pass,int goal_last_time,double task_information[][],int ant_number,double timeduring,double city_link[][][],int hormone_of_way,int time_of_next_city,int task_id)
{
this.ant_id=ant_id;
this.city_number=city_number;
this.ant_speed=ant_speed;
this.current_city=current_city;
this.timeduring=timeduring;
this.i=i;
this.ant_number=ant_number;
this.city_number=city_number;
for(bb=0;bb<ant_number*2;bb++)
{
for(bbb=0;bbb<city_number+3;bbb++)
{
this.way[bb][bbb]=way[bb][bbb];
}
}
for(bb=0;bb<city_number+1;bb++)
{
for(bbb=0;bbb<city_number+1;bbb++)
{
this.city_link[bb][bbb][0]=city_link[bb][bbb][0];
this.city_link[bb][bbb][0]=city_link[bb][bbb][0];
}
}

way[ant_id][number_of_city_ant_has_pass]=way[ant_id][number_of_city_ant_has_pass]+1;
next_city_possible_number=0;
for (m=1;m<=city_number;m++)
{
if (city_link[way[ant_id][way[ant_id][number_of_city_ant_has_pass]]][m][distance_between_two_city]/ant_speed+way[ant_id][time_of_next_city]<=task_information[task_id][goal_last_time])

{
for(i=3;i<=way[ant_id][number_of_city_ant_has_pass]+3;i++)
{
if(way[ant_id][i]==m)
{
break;
}
}
if(way[ant_id][i]==m)
{
break;
}
else
{
next_city_possible_number++;
possible_city[next_city_possible_number-1]=m;
}
}
}
hormone_total_value=0;
for (s=0;s<=next_city_possible_number-1;s++)
{
hormone_total_value=hormone_total_value+city_link[current_city][possible_city[s]][hormone_of_way];
}
ran=Math.random()*hormone_total_value;
for (s=0;s<next_city_possible_number-1;s++)
{
hormone_total_value=hormone_total_value-city_link[current_city][possible_city[s]][hormone_of_way];
if(hormone_total_value<0)
{
after_city=s;
break;
}
}
}

}

class find_best_way //继续的提问,代码太长,多次发表
{
double diggest_hormone_road_road_hormone;
int now_city=0;
int final_way[];
int m;
int n;
int pp;
int task_id;
int ni;
int nii;
int city_passed_number;
double total_distance = 0;
int city_number;
double[][][] city_link = new double[city_number + 1][city_number + 1][2];
double[][] task_information = new double[4][6];

public find_best_way(int task_id,int city_number,double city_link[][][],double task_information[][],int distance_between_two_city,int goal_city,int start_city,int task_number,int hormone_of_way)
{
this.final_way[0]=(int)task_information[task_id][start_city];
for(int ni=0;ni<=city_number;ni++)
{
for(int nii=0;nii<=city_number;nii++)
{
this.city_link[ni][nii][0]=city_link[ni][nii][0];
this.city_link[ni][nii][1]=city_link[ni][nii][1];
}
}
for(int ni=0;ni<task_number;ni++)
{
for(int nii=0;nii<8;nii++)
{
this.task_information[ni][nii]=task_information[ni][nii];
}
}
this.task_id=task_id;
this.city_number=city_number;
for (int m=0;m<city_number;m++)
{
diggest_hormone_road_road_hormone=0;
for(int n=1;n<=city_number;n++)
{
if(city_link[final_way[m]][n][hormone_of_way]>diggest_hormone_road_road_hormone)
{
int pp=0;
do
{
if (final_way[pp]==n)
{
break;
}
pp++;
}
while(pp<=m);
if(pp==m+1)
{
diggest_hormone_road_road_hormone=city_link[final_way[m]][n][hormone_of_way];
}
final_way[m+1]=n;
if(n==task_information[task_id][goal_city])
{
break;
}
total_distance=total_distance+city_link[m][n][distance_between_two_city];
}
}
if(n==task_information[task_id][goal_city])
{
break;
}
city_passed_number=m+1;
}
}//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}

public class ant_my
{
public static void main(String args[])
{
double direct_distance;
int m,n,task_id;
int ant_speed=1;
final double hormone_increase=1;
final double hormone_increase_k=1.5;
final double hormone_decrease_k=0.5;
final int city_number=10;
final int initial_hormone=1;
final int ant_k=6;
double timeduring;

int start_city=0;
final int start_early_time=1;
final int start_last_time=2;
int goal_city=3;
final int goal_early_time=4;
final int goal_last_time=5;
int ant_number;
int current_city;
int id_of_start_city;
int id_of_goal_city;
final int total_distance=1;
final int city_passed_number=0;

int FBTGFAC_after_city=0;

int FGTBFAC_after_city=0;

final int longitude=0;
final int latitude=1;

final int time_of_next_city=0;
int number_of_city_ant_has_pass=1;

final int distance_between_two_city=0;
final int hormone_of_way=1;

final int task_number=4;
int i=1;
double [][]final_find_way_no_pinke=new double[task_number][city_number+2];int city_situs[][]={{23,53},{23,43},{4,24},{42,4},{423,54},{7,3},{5,43},{5,7},{54,34},{45,1}};

int city_link_readonly[][][]=
{
{
{999999,0},{2,0},{54,0},{999999,0},{999999,0},{999999,0},{999999,0},{999999,0},{999999,0},{999999,0},{999999,0}
},
{
{2,0},{999999,0},{3,0},{99,0},{999999,0},{9,0},{83,0},{999999,0},{999999,0},{25,0},{999999,0}
},
{
{54,0},{3,0},{999999,0},{999999,0},{999999,0},{49,0},{44,0},{999999,0},{999999,0},{999999,0},{999999,0}
},
{
{999999,0},{99,0},{999999,0},{999999,0},{35,0},{22,0},{999999,0},{999999,0},{999999,0},{999999,0},{49,0}
},
{
{999999,0},{999999,0},{999999,0},{35,0},{999999,0},{66,0},{999999,0},{33,0},{999999,0},{999999,0},{399,0}
},
{
{999999,0},{9,0},{49,0},{22,0},{66,0},{999999,0},{99,0},{22,0},{999999,0},{999999,0},{999999,0}
},
{
{999999,0},{83,0},{44,0},{999999,0},{999999,0},{99,0},{999999,0},{92,0},{5,0},{999999,0},{69,0}
},
{
{999999,0},{999999,0},{999999,0},{999999,0},{33,0},{22,0},{92,0},{999999,0},{999999,0},{999999,0},{999999,0}
},
{
{999999,0},{999999,0},{999999,0},{999999,0},{999999,0},{999999,0},{999999,0},{999999,0},{999999,0},{57,0},{26,0}
},
{
{999999,0},{25,0},{999999,0},{999999,0},{999999,0},{999999,0},{999999,0},{999999,0},{57,0},{999999,0},{999999,0}
},
{
{999999,0},{999999,0},{999999,0},{49,0},{399,0},{999999,0},{69,0},{999999,0},{26,0},{999999,0},{999999,0}
}
};

double task_information[][]=
{
{3,2,3,7,4,5},
{1,3,4,2,5,6},
{6,6,7,8,8,9},
{4,9,10,10,11,12}
};

//find_after_city FBTGFAC=null;
//find_after_city FGTBFAC=null;
//find_best_way find_best_way_for_nopinke=null;
for(task_id=0;task_id<task_number;task_id++)
{
id_of_start_city=(int)task_information[task_id][0];
id_of_goal_city =(int)task_information[task_id][3];
current_city =(int)task_information[task_id][0];
direct_distance=Math.sqrt(Math.pow((city_situs[(int)task_information[task_id][start_city]][longitude]-city_situs[(int)task_information[task_id][goal_city]][longitude]),2)+Math.pow((city_situs[(int)task_information[task_id][start_city]][latitude]-city_situs[(int)task_information[task_id][goal_city]][latitude]),2));
ant_number=(int)Math.round(ant_k*direct_distance);
int [][] way=new int[ant_number*2][city_number+3];
for(int b=0;b<ant_number*2;b++)
{
way[b][time_of_next_city]=0;
way[b][number_of_city_ant_has_pass]=0;
way[b][3]=0;
}
double [][][] city_link=new double[city_number+1][city_number+1][2];
for(int c=0;c<city_number;c++)
{
for(int d=0;d<city_number;d++)
{
city_link[c][d][distance_between_two_city]=city_link_readonly[c][d][distance_between_two_city];
city_link[c][d][hormone_of_way]=initial_hormone;
city_link[c][c][distance_between_two_city]=999999999;
}
}
city_link[0][(int)Math.round(task_information[task_id][start_city])][distance_between_two_city]=1;
city_link[(int)task_information[task_id][start_city]][0][distance_between_two_city]=1;
timeduring=Math.abs(task_information[task_id][goal_last_time]-task_information[task_id][start_early_time]);
final double time_stage=2;
int timeduring_number=(int)Math.ceil(timeduring/time_stage);
for (int j=0;j<=timeduring_number;j++)
{

for (int ant_id=1;ant_id<=ant_number;ant_id++)
{
if(way[ant_id][time_of_next_city]<=j)
{
find_after_city FBTGFAC=new find_after_city(ant_id,distance_between_two_city,way,city_number,ant_speed,current_city,i,number_of_city_ant_has_pass,goal_last_time,task_information,ant_number,timeduring,city_link, hormone_of_way,time_of_next_city,task_id);
FBTGFAC_after_city=FBTGFAC.after_city;
way[ant_id][number_of_city_ant_has_pass]++;
way[ant_id][way[ant_id][number_of_city_ant_has_pass]+3]=FBTGFAC.after_city;
}
way[ant_id][way[ant_id][number_of_city_ant_has_pass]+3]=FBTGFAC_after_city;
city_link[way[ant_id][way[ant_id][number_of_city_ant_has_pass]]][way[ant_id][way[ant_id][number_of_city_ant_has_pass]-1]][hormone_of_way]=city_link[way[ant_id][way[ant_id][number_of_city_ant_has_pass]]][way[ant_id][way[ant_id][number_of_city_ant_has_pass]-1]][hormone_of_way]+hormone_increase;
if(way[ant_id+ant_number][time_of_next_city]<=j)
{
find_after_city FGTBFAC=new find_after_city(ant_id+ant_number,distance_between_two_city,way,city_number,ant_speed,current_city,i,number_of_city_ant_has_pass,goal_last_time,task_information,ant_number,timeduring,city_link,hormone_of_way,time_of_next_city,task_id);
FGTBFAC_after_city=FGTBFAC.after_city;
}
way[ant_id+ant_number][way[ant_id+ant_number][number_of_city_ant_has_pass]+3]=FGTBFAC_after_city;
city_link[way[ant_id+ant_number][way[ant_id+ant_number][number_of_city_ant_has_pass]]][way[ant_id+ant_number][way[ant_id+ant_number][number_of_city_ant_has_pass]-1]][hormone_of_way]=city_link[way[ant_id+ant_number][way[ant_id+ant_number][number_of_city_ant_has_pass]]][way[ant_id+ant_number][way[ant_id+ant_number][number_of_city_ant_has_pass]-1]][hormone_of_way]+hormone_increase;
}
for (m=1;m<=city_number;m++)
{
for (n=1;n<=city_number;n++)
{
city_link[m][n][hormone_of_way]=city_link[m][n][hormone_of_way]*hormone_decrease_k;
}
}
find_best_way find_best_way_for_nopinke=new find_best_way(task_id,city_number,city_link,task_information,distance_between_two_city,goal_city,start_city,task_number,hormone_of_way);
for (m=0;m<=find_best_way_for_nopinke.city_passed_number;m++)
{
final_find_way_no_pinke[task_id][m+2]=find_best_way_for_nopinke.final_way[m];
System.out.println(find_best_way_for_nopinke.final_way[m]);
}
final_find_way_no_pinke[task_id][city_passed_number]=find_best_way_for_nopinke.city_passed_number;
final_find_way_no_pinke[task_id][total_distance]=find_best_way_for_nopinke.total_distance;
}
}
}
}

exception in thread "main" java.lang.arrayindexoutofboundsexception
at find_after_city.<init>(ant_my.java:37)
at ant_my.main(ant_my.java:314)

问题呢?

问题贴出来

少main()无法运行

你的问题多的是哦
我看你还是好好看看书