Algoritmos genéticos e Java

7 respostas
C
Olá Pessoal, bem tenho uma aplicação que se utiliza de banco de dados e algoritmos genéticos em java, é o seguinte tenho a função geraCromossomo() para preencher um vetor bidimensional(o cromossomo), o négocio é que não sei como fazr essa funçaõ, primeiro pq tenho que preencher cada posição da matriz com um codigo,  que esse código é extraido de uma outra classe, q pega os dados do banco de dados.  que o código é constituido pelos valores de cada linha do banco, abaixo vai o codigo que pega os valores e une em um :

public void listarCurso()

{

try

{

String sql = select Disciplinas.Semestre, Disciplinas.CodCurso, Disciplinas.Carga, Disciplinas.CodDisciplina, Professores.CodProfessor from Disciplinas inner join Professores on Disciplinas.CodDisciplina = Professores.CodDisciplina;

Statement s = this.can.createStatement();

ResultSet rs = s.executeQuery(sql);

int aux1,aux2,aux3,aux4,aux5;

String a1, a2, a3, a4, a5;

String saida = REGISTRO DE LOCAÇÕES;

saida = “\t\t\tRegistro Geral\n\n;

while(rs.next())

{

aux1 = rs.getInt(1);

aux2 = rs.getInt(2);

aux3 = rs.getInt(3);

aux4 = rs.getInt(4);

aux5 = rs.getInt(5);

a1 = Integer.toString(aux1);

a2 = Integer.toString(aux2);

a3 = Integer.toString(aux3);

a4 = Integer.toString(aux4);

a5 = Integer.toString(aux5);
saida = a1+a2+a3+a4+a5;

System.out.println(saida);

// rs.close();

<a href="//s.close">//s.close</a>();

}

}

catch(Exception e)

{

System.out.println("Erro listarCurso: " + e);

}

}

nesse codigo traz todos os resultados do banco, quero por cada resultado desse em uma posição da matriz da outra classe, enfim caso nao entendam o q eu pedir é só falarem!! Me ajudem!!!

7 Respostas

ddduran

por que você não fazer seu cromossomo ser uma classe, com o vetor como um array, ai sua população seria uma coleção de cromossomos?

mas ta bem complicado de entender o que você quer :slight_smile:

o ideal é que você não use essas variaveis aux1,…,auxk,…,auxn
e sim um vetor

int [] aux = new int[tamanho];

ajudou?

C

essa classe ai nao tem nada haver com o cromossomo. é claro q tenho uma classe cromossomo onde o mesmo é um vetor, o negocio é que quero preencher esse vetor com dados de um banco!

Marciliojr

Antes do While

Vector v = new Vector();

while(rs.next())

{

aux1 = rs.getInt(1);

aux2 = rs.getInt(2);

aux3 = rs.getInt(3);

aux4 = rs.getInt(4);

aux5 = rs.getInt(5);

a1 = Integer.toString(aux1);

a2 = Integer.toString(aux2);

a3 = Integer.toString(aux3);

a4 = Integer.toString(aux4);

a5 = Integer.toString(aux5);

saida = a1+a2+a3+a4+a5;

v.add(saida);

System.out.println(saida);

// rs.close();

<a href="//s.close">//s.close</a>();

}

você ainda poderia colocar sua consulta em um método que retorna um VECTOR ai sua classe cromossomo ia só chamar esse método.

ViniGodoy

Talvez ela não precise mais disso. De 2007 para cá, há muitas chances dela já ter achado a solução do problema. :lol:

Só comentando sua resposta. Não use Vector. Ele está desaconselhado desde o Java 1.2. No lugar, use ArrayList. O Vector possui todos os métodos sincronizados, o que pode impactar negativamente na performance. Além disso, sua interface é mais complicada, já que possui vários métodos duplicados (como addElement e add).

Para que seu código funcione com ArrayList, basta alterar essa linha:

Vector v = new Vector();

Para essa:

List&lt;String&gt; v = new List&lt;String&gt;();

Note que eu também usei a notação que especifica o tipo, tornando o list mais seguro e evitando casts no futuro. Essa notação também poderia ser aplicada ao Vector.

Para mais informações sobre o ArrayList, veja o tópico:
http://www.guj.com.br/posts/list/74068.java#389435

E para saber como postar código colorido e formatado, leia esse aqui:
http://www.guj.com.br/posts/list/50115.java

Marciliojr

ok cara.

eu uso tbm a interface LIST com Generic v = new LinkedList(); ou array…

só respondi o que ela perguntou. ela falow vetor. achei melhor esplicar de uma forma que resolvesse o que ela tava precisando.

quanto a ter a resposta ou não. o típico tah aberto sen o [resolvido] não custava nada responder nele até pq outra pessoa poderia ter o

mesmo problema.

só quis ajudar. :smiley:

Marky.Vasconcelos

Eu disse que esse povo ta na mania do [RESOLVIDO].
Talvez bom senso seja melhor do que isso.

ViniGodoy

Mark_Ameba:
Eu disse que esse povo ta na mania do [RESOLVIDO].
Talvez bom senso seja melhor do que isso.

É sim, Mark, na nossa época não tinha disso. heheeheheh
Isso realmente facilita, mas não é obrigatório.

Ressuscitar um tópico muito antigo pode ser tão prejudicial quanto não colocar o [RESOLVIDO].

Criado 29 de outubro de 2007
Ultima resposta 5 de out. de 2009
Respostas 7
Participantes 5