SlideShare uma empresa Scribd logo
1 de 6
Baixar para ler offline
Projecto de Programa¸˜o Orientada por Objectos
                        ca
                       2009/10

                                                  MEEC – IST



1    Problema
Considere uma grelha n × m. Pretende-se encontrar o melhor caminho, i.e., o caminho com
menor custo, entre um ponto inicial, com coordenadas (xi , yi ), e um ponto final, com coorde-
nadas (xf , yf ). O custo do caminho ´ determinado pelo n´mero de arestas percorridas. Em
                                        e                    u
geral, o custo de cada aresta ´ 1, mas podem existir zonas especiais em que o custo seja superior.
                              e
Existem ainda nobst obst´culos em alguns pontos da grelha pelos quais n˜o se pode passar.
                          a                                               a
    Como exemplo, considere-se a figura seguinte, representando uma grelha 5 × 4:

                                    ·        •        ·       ·       ⊕


                                    ·        • _ _ _ ·
                                                             ·        ·
                                                     
                                                   
                                    ·        · _ _ _·         •        ·


                                             •        ·       ·        ·

Nesta figura, o ponto inicial, assinalado por , tem coordenadas (1, 1), o ponto final, assi-
nalado por ⊕, tem coordenadas (5, 4), os obst´culos est˜o assinalados por •, e as arestas da
                                                             a            a
zona de custo especial, assinaladas a tracejado, tˆm custo 4. Neste caso, o melhor caminho ´
                                                                 e                                          e
(1, 1), (1, 2), (2, 2), (3, 2), (3, 1), (4, 1), (5, 1), (5, 2), (5, 3), (5, 4) com custo 12. Existem caminhos
mais curtos mas cujo custo ´ superior. Por exemplo, o caminho (1, 1), (1, 2), (2, 2), (3, 2), (3, 3),
                                    e
(4, 3), (5, 3), (5, 4) ´ mais curto mas o seu custo ´ 13.
                       e                                      e


2    Abordagem
O objectivo deste projecto ´ programar em Java uma solu¸˜o para o problema acima descrito
                           e                            ca
utilizando programa¸˜o evolutiva especificada e implementada por objectos.
                    ca




                                                      1
A ideia ´ gerar no instante zero uma popula¸˜o de ν indiv´
              e                                     ca            ıduos, todos colocados no ponto
inicial, e fazˆ-la evoluir at´ ao instante final τ . A cada indiv´
              e              e                                  ıduo z est´ associado um conforto
                                                                          a
                                                           k                              k
                                custo(z) − comp(z) + 2              dist(z, (xf , yf ))
               ϕ(z) = 1 −                                      1−
                              (cmax − 1) × comp(z) + 3                 n+m+1

onde:

    • cmax ´ o custo m´ximo de uma aresta da grelha;
           e          a

    • custo(z) ´ o custo do caminho do indiv´
               e                            ıduo z;

    • comp(z) ´ o comprimento desse caminho – o n´mero de arestas percorridas;
              e                                  u

    • dist(z, (xf , yf )) ´ a distˆncia do ultimo ponto do caminho ao destino – menor n´mero de
                          e       a        ´                                           u
      arestas que ´ necess´rio percorrer;
                     e        a

    • k ´ um parˆmetro introduzido pelo utilizador de sensibilidade do conforto a pequenas
        e        a
      varia¸˜es.
           co

Cada indiv´ ıduo z evolui de acordo com o seu conforto, atrav´s dos seguintes mecanismos
                                                             e
aleat´rios.
     o

    • Morte, vari´vel exponencial com tempo m´dio (1 − log(1 − ϕ(z)))µ entre eventos.
                 a                           e

    • Reprodu¸˜o, vari´vel exponencial com tempo m´dio (1 − log(ϕ(z)))ρ. Da reprodu¸˜o
               ca       a                             e                                 ca
      surge um novo indiv´
                         ıduo cujo caminho ´ um prefixo do caminho do progenitor. O compri-
                                           e
      mento deste prefixo ´ determinado pelo conforto do progenitor aproveitando sempre 90%
                          e
      do caminho e uma frac¸˜o ϕ(z) dos restantes 10%.
                            ca

    • Deslocamento (usualmente chamado muta¸˜o em programa¸˜o evolutiva), vari´vel ex-
                                                  ca                ca                 a
      ponencial com tempo m´dio (1 − log(ϕ(z)))δ entre eventos. O deslocamento pode ocorrer
                              e
      equiprovavelmente para uma posi¸˜o adjacente na grelha n˜o ocupada por um obst´culo.
                                       ca                        a                       a
      Se o indiv´
                ıduo se deslocar para uma posi¸˜o que j´ existe no seu caminho deve eliminar o
                                              ca       a
      tro¸o compreendido entre as duas ocorrˆncias dessa posi¸˜o.
         c                                   e                ca

   A popula¸˜o evolui em fun¸˜o da evolu¸˜o individual dos seus elementos e ainda por
             ca                ca            ca
ocorrˆncia de epidemias. Quando o n´mero de indiv´
     e                                 u              ıduos excede um m´ximo νmax , ocorre
                                                                        a
uma epidemia. A ` epidemia sobrevivem sempre os cinco indiv´ ıduos com maior conforto. Para
cada um dos restantes, a probabilidade de sobrevivˆncia ´ ϕ(z).
                                                  e     e
   A evolu¸˜o da popula¸˜o dever´ ser regida por simula¸˜o estoc´stica discreta, isto ´, baseada
          ca           ca       a                      ca       a                     e
numa cadeia de acontecimentos pendentes.


3    Parˆmetros
        a
O programa deve receber o conjunto seguinte de dados:

    • dimens˜es n e m da grelha;
            o

    • as coordenadas (xi , yi ) do ponto inicial e (xf , yf ) do ponto final;



                                                  2
• uma lista de tuplos (coordenada, coordenada, custo)

                             {((x1 , y1 ), (x1 , y1 ), c1 ), . . . , ((xk , yk ), (xk , yk ), ck )}

      para especificar as zonas rectangulares de custo especial;

   • o n´mero de obst´culos nobst e as coordenadas (xi , yi ), para i = 1, . . . , nobst , desses
        u            a
     obst´culos;
         a

   • instante final τ ( 0) da evolu¸˜o;
                                   ca

   • lista de parˆmetros k, ν, νmax , µ, δ, ρ.
                 a

3.1   Formato do ficheiro de dados
O ficheiro que descreve os parˆmetros de entrada da simula¸˜o ´ um ficheiro XML. A simula¸˜o ´
                             a                           ca e                          ca e
um elemento simulacao cujos atributos indicam o instante final (instfinal), popula¸˜o inicial
                                                                                   ca
(popinicial) e popula¸˜o m´xima (popmaxima) da simula¸˜o, assim como a sensibilidade do
                        ca   a                             ca
conforto a varia¸˜es (sensconforto). O elemento simulacao cont´m seis elementos:
                co                                               e

   • O elemento vazio grelha cujos atributos indicam a sua dimens˜o (numcolunas e numlinhas).
                                                                 a

   • O elemento vazio pontoinicial, cujos atributos indicam as coordenadas iniciais (xinicial
     e yinicial).

   • O elemento vazio pontofinal, cujos atributos indicam as coordenadas finais xfinal e
     yfinal).

   • O elemento vazio zonascustoespecial cont´m por sua vez uma lista de elementos zona
                                                 e
     com atributos que indicam a sua posi¸˜o na grelha (xinicial, yinicial, xfinal, yfinal)
                                          ca
     e cujo conte´do indica o respectivo custo.
                 u

   • O elemento obstaculos, cujo unico atributo descreve o n´mero de obstaculos (num),
                                     ´                        u
     cont´m por sua vez uma lista de elementos vazios obstaculo com atributos que indicam
         e
     a sua posi¸˜o na grelha (xpos, ypos).
               ca

   • O elemento eventos, que por sua vez cont´m trˆs novos elementos vazios (morte, reproducao
                                             e    e
     e deslocamento) cujos atributos (param) descrevem os parˆmetros relativos aos eventos
                                                               a
     morte, reprodu¸˜o e muta¸˜o.
                   ca         ca

3.2   Exemplo
Como ilustra¸˜o considere o exemplo descrito na Sec¸˜o 1:
            ca                                     ca

   • dimens˜es da grelha: n = 5 e m = 4;
           o

   • ponto inicial: (xi , yi ) = (1, 1);

   • ponto final: (xf , yf ) = (5, 4);

   • zona de custo especial: (x1 , y1 ) = (2, 2), (x1 , y1 ) = (3, 3) e c1 = 4;

   • obst´culos: nobst = 4 e coordenadas (2, 1), (2, 3), (2, 4), (4, 2);
         a

   • instante final da evolu¸˜o: τ = 100;
                           ca

                                                           3
• popula¸˜o inicial: ν = 10;
            ca

    • popula¸˜o m´xima: νmax = 100;
            ca   a

    • sensibilidade do conforto: k = 3;

    • parˆmetros relacionados com os eventos: µ = 10, δ = 1, ρ = 1.
         a

Seguem os mesmo parˆmetros em XML:
                   a
simulacao instfinal=100 popinicial=10 popmaxima=500 sensconforto=3 
  grelha numcolunas=5 numlinhas=4/
  pontoinicial xinicial=1 yinicial=1 
  pontofinal xfinal=5 yfinal=4 
  zonascustoespecial
     zona xinicial=2 yinicial=2 xfinal=3 yfinal=3 4/zona
  /zonascustoespecial
  obstaculos num=4 
     obstaculo xpos=2 ypos=1/
     obstaculo xpos=2 ypos=3/
     obstaculo xpos=2 ypos=4/
     obstaculo xpos=4 ypos=2/
  /obstaculos
  eventos
     morte param=10/
     reproducao param=1/
     mutacao param=1/
  /eventos
/simulacao


4    Resultados
O programa deve imprimir para o terminal no final da simula¸˜o o caminho do indiv´
                                                          ca                    ıduo mais
adaptado ao longo de toda a simula¸˜o. Por caminho do indiv´
                                  ca                       ıduo mais adaptado entende-se:

    • caso algum indiv´
                      ıduo atinja o ponto final, o caminho do indiv´  ıduo z com menor custo,
      independentemente de o indiv´ıduo z ter ou n˜o sobrevivido at´ ao fim da simula¸˜o;
                                                  a                e                ca

    • caso nenhum indiv´
                       ıduo atinja o ponto final, o caminho do indiv´
                                                                   ıduo z com maior conforto,
      independentemente de o indiv´ıduo z ter ou n˜o sobrevivido at´ ao fim da simula¸˜o;
                                                   a               e                ca

    Durante a simula¸˜o o programa deve ainda imprimir para o terminal o resultado de ob-
                       ca
serva¸˜es da popula¸˜o, realizadas de τ /20 em τ /20 unidades de tempo. Cada observa¸˜o deve
     co              ca                                                                  ca
incluir o instante actual, o n´mero de eventos j´ realizados, a dimens˜o da popula¸˜o, o caminho
                              u                 a                     a           ca
do melhor indiv´ ıduo e o respectivo custo/conforto (custo no caso de ter sido atingido o ponto
final e conforto caso contr´rio), segundo o seguinte formato:
                            a




                                               4
Observacao x:
                         Instante actual:                         instante
                         Numero de eventos realizados:            eventos
                         Dimensao da populacao:                   dimensao
                         Foi atingido o ponto final:               sim/nao
                         Caminho do individuo mais adaptado:      {(x1 , y1 ), . . . , (xj , yj )}
                         Custo/Conforto:                          custo/conforto

   Qualquer outra impress˜o para o terminal, ou uma impress˜o deste conte´do fora deste
                           a                               a             u
formato, incorre em penaliza¸˜o na nota do projecto.
                            ca


5     Simula¸˜o
            ca
O simulador deve executar os seguintes passos:

    1. Ler o ficheiro que descreve os parˆmetros de entrada da simula¸˜o, e guardar/criar os
                                          a                              ca
       valores/objectos necess´rios. O ficheiro com os dados de entrada ´ um ficheiro XML, cujo
                              a                                         e
       formato ´ descrito na Sec¸˜o 3.1, e deve ser validado atrav´s de um DTD apropriado.
                e                ca                               e

    2. Executar o ciclo de simula¸˜o at´ que: (i) o tempo limite de simula¸˜o seja atingido; ou
                                 ca    e                                  ca
       (ii) n˜o haja mais eventos a simular. Durante a simula¸˜o devem ser impressos para o
             a                                                 ca
       terminal as observa¸˜es da popula¸˜o descritas na Sec¸˜o 4.
                          co             ca                 ca

    3. No final da simula¸˜o deve ser imprimido para o terminal a informa¸˜o pedida na Sec¸˜o 4.
                        ca                                              ca               ca


6     Avalia¸˜o
            ca
O projecto vale 8 valores da nota final que se distribuem da seguinte forma:

    1. (2 val) Relat´rio intercalar: 27 Abril 2010
                    o

         • Nesta fase dever´ ser entregue a especifica¸˜o em UML do diagrama de classes e
                            a                        ca
           pacotes (t˜o detalhado quanto poss´
                     a                       ıvel).
         • O diagrama UML deve ser entregue via fenix.

    2. (6 val) Relat´rio final: 27 Maio 2010
                    o

         • Nesta fase dever´ ser entregue as fontes do programa, o respectivo execut´vel .jar
                             a                                                       a
           (com os ficheiros .java, .class, e MANIFEST.MF organizados correctamente em di-
           rectorias), e a documenta¸˜o (gerada pela ferramenta javadoc) da aplica¸˜o.
                                     ca                                           ca
         • As fontes, execut´vel e documenta¸˜o da aplica¸˜o devem ser entregues via fenix.
                            a               ca           ca

    3. Discuss˜o final: 1 e 8 Junho 2010
                a
       A distribui¸˜o dos grupos para a discuss˜o final ser´ disponibilizada oportunamente. To-
                  ca                           a          a
       dos os membros do grupo devem estar presentes na discuss˜o. A nota final do projecto
                                                                   a
       depender´ desta discuss˜o, e n˜o ser´ necessariamente a mesma para todos os membros
                a             a      a      a
       do grupo.

Tanto para o relat´rio intercalar como para o final, projectos entregues ap´s a data estabelecida
                  o                                                       o
ter˜o a seguinte penaliza¸˜o: por cada dia de atraso haver´ uma penaliza¸˜o de 2n valores da
   a                      ca                                a               ca

                                               5
nota, onde n ´ o n´mero de dias em atraso. Ou seja, relat´rios entregues com 1 dia de atraso
              e     u                                        o
ser˜o penalizados em 2
   a                    1 = 2 valores (o relat´rio intercalar incorre numa penaliza¸˜o de 0.2
                                                o                                      ca
valores da nota final, o relat´rio final incorre numa penaliza¸˜o de 0.6 valores da nota final),
                              o                                ca
relat´rios entregues com 2 dias de atraso ser˜o pensalizados em 22 = 4 valores (o relat´rio
     o                                          a                                             o
intercalar incorre numa penaliza¸˜o de 0.4 valores da nota final, o relat´rio final incorre numa
                                 ca                                      o
penaliza¸˜o de 1.2 valores da nota final), etc. Por dia de atraso entende-se ciclos de 24h a partir
         ca
do dia estabelecido para a entrega.




                                                6

Mais conteúdo relacionado

Destaque (20)

Rec08 cuarto. módulo de métodos y materiales
Rec08 cuarto. módulo de métodos y materialesRec08 cuarto. módulo de métodos y materiales
Rec08 cuarto. módulo de métodos y materiales
 
Padrao globo de oposicao
Padrao globo de oposicaoPadrao globo de oposicao
Padrao globo de oposicao
 
Cuestionario sobre aprendizaje
Cuestionario sobre aprendizajeCuestionario sobre aprendizaje
Cuestionario sobre aprendizaje
 
01 evaluacion prl
01 evaluacion prl01 evaluacion prl
01 evaluacion prl
 
01 manual completo sensibilización ambiental
01 manual completo sensibilización ambiental01 manual completo sensibilización ambiental
01 manual completo sensibilización ambiental
 
Evolució del web
Evolució del webEvolució del web
Evolució del web
 
Mascote Ó o Jornal
Mascote Ó o JornalMascote Ó o Jornal
Mascote Ó o Jornal
 
Redação de advogado - exemplo negativo
Redação de advogado - exemplo negativoRedação de advogado - exemplo negativo
Redação de advogado - exemplo negativo
 
Decàleg centre TIC ideal
Decàleg centre TIC idealDecàleg centre TIC ideal
Decàleg centre TIC ideal
 
Mitose
MitoseMitose
Mitose
 
GBI2016_Cantone
GBI2016_CantoneGBI2016_Cantone
GBI2016_Cantone
 
web 2.0 web 3.0
web 2.0 web 3.0 web 2.0 web 3.0
web 2.0 web 3.0
 
new 2016 resume
new 2016 resumenew 2016 resume
new 2016 resume
 
Agua ¿para qué?
Agua ¿para qué?Agua ¿para qué?
Agua ¿para qué?
 
Ganadores Educación Especial (2do puesto)
Ganadores Educación Especial (2do puesto)Ganadores Educación Especial (2do puesto)
Ganadores Educación Especial (2do puesto)
 
Dos perspectivas de investigación
Dos perspectivas de investigaciónDos perspectivas de investigación
Dos perspectivas de investigación
 
Evolució del Web
Evolució del WebEvolució del Web
Evolució del Web
 
ACS Med Chem 2011 (2) 919-923
ACS Med Chem 2011 (2) 919-923ACS Med Chem 2011 (2) 919-923
ACS Med Chem 2011 (2) 919-923
 
Delimitar o tema
Delimitar o temaDelimitar o tema
Delimitar o tema
 
Alguns conceitos de química
Alguns conceitos de químicaAlguns conceitos de química
Alguns conceitos de química
 

Projecto Poo0910

  • 1. Projecto de Programa¸˜o Orientada por Objectos ca 2009/10 MEEC – IST 1 Problema Considere uma grelha n × m. Pretende-se encontrar o melhor caminho, i.e., o caminho com menor custo, entre um ponto inicial, com coordenadas (xi , yi ), e um ponto final, com coorde- nadas (xf , yf ). O custo do caminho ´ determinado pelo n´mero de arestas percorridas. Em e u geral, o custo de cada aresta ´ 1, mas podem existir zonas especiais em que o custo seja superior. e Existem ainda nobst obst´culos em alguns pontos da grelha pelos quais n˜o se pode passar. a a Como exemplo, considere-se a figura seguinte, representando uma grelha 5 × 4: · • · · ⊕ · • _ _ _ · · · · · _ _ _· • · • · · · Nesta figura, o ponto inicial, assinalado por , tem coordenadas (1, 1), o ponto final, assi- nalado por ⊕, tem coordenadas (5, 4), os obst´culos est˜o assinalados por •, e as arestas da a a zona de custo especial, assinaladas a tracejado, tˆm custo 4. Neste caso, o melhor caminho ´ e e (1, 1), (1, 2), (2, 2), (3, 2), (3, 1), (4, 1), (5, 1), (5, 2), (5, 3), (5, 4) com custo 12. Existem caminhos mais curtos mas cujo custo ´ superior. Por exemplo, o caminho (1, 1), (1, 2), (2, 2), (3, 2), (3, 3), e (4, 3), (5, 3), (5, 4) ´ mais curto mas o seu custo ´ 13. e e 2 Abordagem O objectivo deste projecto ´ programar em Java uma solu¸˜o para o problema acima descrito e ca utilizando programa¸˜o evolutiva especificada e implementada por objectos. ca 1
  • 2. A ideia ´ gerar no instante zero uma popula¸˜o de ν indiv´ e ca ıduos, todos colocados no ponto inicial, e fazˆ-la evoluir at´ ao instante final τ . A cada indiv´ e e ıduo z est´ associado um conforto a k k custo(z) − comp(z) + 2 dist(z, (xf , yf )) ϕ(z) = 1 − 1− (cmax − 1) × comp(z) + 3 n+m+1 onde: • cmax ´ o custo m´ximo de uma aresta da grelha; e a • custo(z) ´ o custo do caminho do indiv´ e ıduo z; • comp(z) ´ o comprimento desse caminho – o n´mero de arestas percorridas; e u • dist(z, (xf , yf )) ´ a distˆncia do ultimo ponto do caminho ao destino – menor n´mero de e a ´ u arestas que ´ necess´rio percorrer; e a • k ´ um parˆmetro introduzido pelo utilizador de sensibilidade do conforto a pequenas e a varia¸˜es. co Cada indiv´ ıduo z evolui de acordo com o seu conforto, atrav´s dos seguintes mecanismos e aleat´rios. o • Morte, vari´vel exponencial com tempo m´dio (1 − log(1 − ϕ(z)))µ entre eventos. a e • Reprodu¸˜o, vari´vel exponencial com tempo m´dio (1 − log(ϕ(z)))ρ. Da reprodu¸˜o ca a e ca surge um novo indiv´ ıduo cujo caminho ´ um prefixo do caminho do progenitor. O compri- e mento deste prefixo ´ determinado pelo conforto do progenitor aproveitando sempre 90% e do caminho e uma frac¸˜o ϕ(z) dos restantes 10%. ca • Deslocamento (usualmente chamado muta¸˜o em programa¸˜o evolutiva), vari´vel ex- ca ca a ponencial com tempo m´dio (1 − log(ϕ(z)))δ entre eventos. O deslocamento pode ocorrer e equiprovavelmente para uma posi¸˜o adjacente na grelha n˜o ocupada por um obst´culo. ca a a Se o indiv´ ıduo se deslocar para uma posi¸˜o que j´ existe no seu caminho deve eliminar o ca a tro¸o compreendido entre as duas ocorrˆncias dessa posi¸˜o. c e ca A popula¸˜o evolui em fun¸˜o da evolu¸˜o individual dos seus elementos e ainda por ca ca ca ocorrˆncia de epidemias. Quando o n´mero de indiv´ e u ıduos excede um m´ximo νmax , ocorre a uma epidemia. A ` epidemia sobrevivem sempre os cinco indiv´ ıduos com maior conforto. Para cada um dos restantes, a probabilidade de sobrevivˆncia ´ ϕ(z). e e A evolu¸˜o da popula¸˜o dever´ ser regida por simula¸˜o estoc´stica discreta, isto ´, baseada ca ca a ca a e numa cadeia de acontecimentos pendentes. 3 Parˆmetros a O programa deve receber o conjunto seguinte de dados: • dimens˜es n e m da grelha; o • as coordenadas (xi , yi ) do ponto inicial e (xf , yf ) do ponto final; 2
  • 3. • uma lista de tuplos (coordenada, coordenada, custo) {((x1 , y1 ), (x1 , y1 ), c1 ), . . . , ((xk , yk ), (xk , yk ), ck )} para especificar as zonas rectangulares de custo especial; • o n´mero de obst´culos nobst e as coordenadas (xi , yi ), para i = 1, . . . , nobst , desses u a obst´culos; a • instante final τ ( 0) da evolu¸˜o; ca • lista de parˆmetros k, ν, νmax , µ, δ, ρ. a 3.1 Formato do ficheiro de dados O ficheiro que descreve os parˆmetros de entrada da simula¸˜o ´ um ficheiro XML. A simula¸˜o ´ a ca e ca e um elemento simulacao cujos atributos indicam o instante final (instfinal), popula¸˜o inicial ca (popinicial) e popula¸˜o m´xima (popmaxima) da simula¸˜o, assim como a sensibilidade do ca a ca conforto a varia¸˜es (sensconforto). O elemento simulacao cont´m seis elementos: co e • O elemento vazio grelha cujos atributos indicam a sua dimens˜o (numcolunas e numlinhas). a • O elemento vazio pontoinicial, cujos atributos indicam as coordenadas iniciais (xinicial e yinicial). • O elemento vazio pontofinal, cujos atributos indicam as coordenadas finais xfinal e yfinal). • O elemento vazio zonascustoespecial cont´m por sua vez uma lista de elementos zona e com atributos que indicam a sua posi¸˜o na grelha (xinicial, yinicial, xfinal, yfinal) ca e cujo conte´do indica o respectivo custo. u • O elemento obstaculos, cujo unico atributo descreve o n´mero de obstaculos (num), ´ u cont´m por sua vez uma lista de elementos vazios obstaculo com atributos que indicam e a sua posi¸˜o na grelha (xpos, ypos). ca • O elemento eventos, que por sua vez cont´m trˆs novos elementos vazios (morte, reproducao e e e deslocamento) cujos atributos (param) descrevem os parˆmetros relativos aos eventos a morte, reprodu¸˜o e muta¸˜o. ca ca 3.2 Exemplo Como ilustra¸˜o considere o exemplo descrito na Sec¸˜o 1: ca ca • dimens˜es da grelha: n = 5 e m = 4; o • ponto inicial: (xi , yi ) = (1, 1); • ponto final: (xf , yf ) = (5, 4); • zona de custo especial: (x1 , y1 ) = (2, 2), (x1 , y1 ) = (3, 3) e c1 = 4; • obst´culos: nobst = 4 e coordenadas (2, 1), (2, 3), (2, 4), (4, 2); a • instante final da evolu¸˜o: τ = 100; ca 3
  • 4. • popula¸˜o inicial: ν = 10; ca • popula¸˜o m´xima: νmax = 100; ca a • sensibilidade do conforto: k = 3; • parˆmetros relacionados com os eventos: µ = 10, δ = 1, ρ = 1. a Seguem os mesmo parˆmetros em XML: a simulacao instfinal=100 popinicial=10 popmaxima=500 sensconforto=3 grelha numcolunas=5 numlinhas=4/ pontoinicial xinicial=1 yinicial=1 pontofinal xfinal=5 yfinal=4 zonascustoespecial zona xinicial=2 yinicial=2 xfinal=3 yfinal=3 4/zona /zonascustoespecial obstaculos num=4 obstaculo xpos=2 ypos=1/ obstaculo xpos=2 ypos=3/ obstaculo xpos=2 ypos=4/ obstaculo xpos=4 ypos=2/ /obstaculos eventos morte param=10/ reproducao param=1/ mutacao param=1/ /eventos /simulacao 4 Resultados O programa deve imprimir para o terminal no final da simula¸˜o o caminho do indiv´ ca ıduo mais adaptado ao longo de toda a simula¸˜o. Por caminho do indiv´ ca ıduo mais adaptado entende-se: • caso algum indiv´ ıduo atinja o ponto final, o caminho do indiv´ ıduo z com menor custo, independentemente de o indiv´ıduo z ter ou n˜o sobrevivido at´ ao fim da simula¸˜o; a e ca • caso nenhum indiv´ ıduo atinja o ponto final, o caminho do indiv´ ıduo z com maior conforto, independentemente de o indiv´ıduo z ter ou n˜o sobrevivido at´ ao fim da simula¸˜o; a e ca Durante a simula¸˜o o programa deve ainda imprimir para o terminal o resultado de ob- ca serva¸˜es da popula¸˜o, realizadas de τ /20 em τ /20 unidades de tempo. Cada observa¸˜o deve co ca ca incluir o instante actual, o n´mero de eventos j´ realizados, a dimens˜o da popula¸˜o, o caminho u a a ca do melhor indiv´ ıduo e o respectivo custo/conforto (custo no caso de ter sido atingido o ponto final e conforto caso contr´rio), segundo o seguinte formato: a 4
  • 5. Observacao x: Instante actual: instante Numero de eventos realizados: eventos Dimensao da populacao: dimensao Foi atingido o ponto final: sim/nao Caminho do individuo mais adaptado: {(x1 , y1 ), . . . , (xj , yj )} Custo/Conforto: custo/conforto Qualquer outra impress˜o para o terminal, ou uma impress˜o deste conte´do fora deste a a u formato, incorre em penaliza¸˜o na nota do projecto. ca 5 Simula¸˜o ca O simulador deve executar os seguintes passos: 1. Ler o ficheiro que descreve os parˆmetros de entrada da simula¸˜o, e guardar/criar os a ca valores/objectos necess´rios. O ficheiro com os dados de entrada ´ um ficheiro XML, cujo a e formato ´ descrito na Sec¸˜o 3.1, e deve ser validado atrav´s de um DTD apropriado. e ca e 2. Executar o ciclo de simula¸˜o at´ que: (i) o tempo limite de simula¸˜o seja atingido; ou ca e ca (ii) n˜o haja mais eventos a simular. Durante a simula¸˜o devem ser impressos para o a ca terminal as observa¸˜es da popula¸˜o descritas na Sec¸˜o 4. co ca ca 3. No final da simula¸˜o deve ser imprimido para o terminal a informa¸˜o pedida na Sec¸˜o 4. ca ca ca 6 Avalia¸˜o ca O projecto vale 8 valores da nota final que se distribuem da seguinte forma: 1. (2 val) Relat´rio intercalar: 27 Abril 2010 o • Nesta fase dever´ ser entregue a especifica¸˜o em UML do diagrama de classes e a ca pacotes (t˜o detalhado quanto poss´ a ıvel). • O diagrama UML deve ser entregue via fenix. 2. (6 val) Relat´rio final: 27 Maio 2010 o • Nesta fase dever´ ser entregue as fontes do programa, o respectivo execut´vel .jar a a (com os ficheiros .java, .class, e MANIFEST.MF organizados correctamente em di- rectorias), e a documenta¸˜o (gerada pela ferramenta javadoc) da aplica¸˜o. ca ca • As fontes, execut´vel e documenta¸˜o da aplica¸˜o devem ser entregues via fenix. a ca ca 3. Discuss˜o final: 1 e 8 Junho 2010 a A distribui¸˜o dos grupos para a discuss˜o final ser´ disponibilizada oportunamente. To- ca a a dos os membros do grupo devem estar presentes na discuss˜o. A nota final do projecto a depender´ desta discuss˜o, e n˜o ser´ necessariamente a mesma para todos os membros a a a a do grupo. Tanto para o relat´rio intercalar como para o final, projectos entregues ap´s a data estabelecida o o ter˜o a seguinte penaliza¸˜o: por cada dia de atraso haver´ uma penaliza¸˜o de 2n valores da a ca a ca 5
  • 6. nota, onde n ´ o n´mero de dias em atraso. Ou seja, relat´rios entregues com 1 dia de atraso e u o ser˜o penalizados em 2 a 1 = 2 valores (o relat´rio intercalar incorre numa penaliza¸˜o de 0.2 o ca valores da nota final, o relat´rio final incorre numa penaliza¸˜o de 0.6 valores da nota final), o ca relat´rios entregues com 2 dias de atraso ser˜o pensalizados em 22 = 4 valores (o relat´rio o a o intercalar incorre numa penaliza¸˜o de 0.4 valores da nota final, o relat´rio final incorre numa ca o penaliza¸˜o de 1.2 valores da nota final), etc. Por dia de atraso entende-se ciclos de 24h a partir ca do dia estabelecido para a entrega. 6