Ir para conteúdo
Entre para seguir isso  
andriy pereplyotkin

Ensino Superior - A Entrada, a Estadia, o Adeus

Publicações recomendadas

Alguém daqui já concorreu às fellowships da Marie Curie-Stoklasa? Se sim, sabem quanto tempo demoram a sair os resultados?

Compartilhar este post


Link para o post

sei o básico das ANOVAS se isso ajudar :mrgreen:

 

já me safei entretanto. obrigado!

Compartilhar este post


Link para o post

Cursos profissionais não têm direito a viagem de finalistas?

Compartilhar este post


Link para o post

Cursos profissionais não têm direito a viagem de finalistas?

Claro que têm. Artigo nº 13 da Constituição. Vai à secretaria reclamar mano

Compartilhar este post


Link para o post

alguém aqui percebe de algoritmos genéticos para optimização?

 

Eu

Compartilhar este post


Link para o post

Chuta

Eu

 

 

amo-vos

 

tenho um projecto em que o prof me obriga a minimizar esta função michalewicz com algoritmo genético e com particle sworm optimization

 

ainda não comecei o algoritmo genético na verdade, implementei o particle sworm. a implementação que fiz está boa e funciona com outros problemas mais simples, mas aqui fica sempre presa num local optima, talvez por ser uma função super estranha

 

imagem com a dimensão da função a 5, a fitness devia ser aproximadamente -4,68 para ser correto

 

rwVhnv9.png

 

 

a implementação é uma "standard", vá, com base nos apontamentos das aulas, mas precisava de melhorar isto.

 

uma das soluções que eu pensei era o controlo da diversidade. ou seja, estou a supor que os elementos da população (neste caso os Xi da função de michalewicz) fiquem muito parecidos uns aos outros e não evoluam por isso.

 

o problema é que não sei fazer uma estatística da diversidade. o stor fez um desenho no quadro de um gráfico com a diversidade a diminuir ao longo das gerações e disse para termos cuidado, com umas soluções para isso, assim q a população fica pouco diversa (estou a pensar em fitness sharing).

 

pronto, a pergunta no fundo é a seguinte: como é que calculo a diversidade a cada nova geração? se esta não for uma boa solução, que me recomendas fazer para melhorar o algoritmo?

 

peço desculpa se não me expliquei bem

Editado por Plagio o Original

Compartilhar este post


Link para o post

amo-vos

 

tenho um projecto em que o prof me obriga a minimizar esta função michalewicz com algoritmo genético e com particle sworm optimization

 

ainda não comecei o algoritmo genético na verdade, implementei o particle sworm. a implementação que fiz está boa e funciona com outros problemas mais simples, mas aqui fica sempre presa num local optima, talvez por ser uma função super estranha

 

imagem com a dimensão da função a 5, a fitness devia ser aproximadamente -4,68 para ser correto

 

rwVhnv9.png

 

 

a implementação é uma "standard", vá, com base nos apontamentos das aulas, mas precisava de melhorar isto.

 

uma das soluções que eu pensei era o controlo da diversidade. ou seja, estou a supor que os elementos da população (neste caso os Xi da função de michalewicz) fiquem muito parecidos uns aos outros e não evoluam por isso.

 

o problema é que não sei fazer uma estatística da diversidade. o stor fez um desenho no quadro de um gráfico com a diversidade a diminuir ao longo das gerações e disse para termos cuidado, com umas soluções para isso, assim q a população fica pouco diversa (estou a pensar em fitness sharing).

 

pronto, a pergunta no fundo é a seguinte: como é que calculo a diversidade a cada nova geração? se esta não for uma boa solução, que me recomendas fazer para melhorar o algoritmo?

 

peço desculpa se não me expliquei bem

Ok vamos lá ver... 70% das coisas que falaste não percebi, e trabalhei com algoritmos genéticos e particle swarm durante 7 anos :lol:

 

A primeira dúvida é saber se estás a falar de GA ou PSO ?

 

No caso do GA, preciso de saber:

- Como estás a codificar os indíviduos?

- Qual o mecanismo de selecção de individuos numa nova geração?

- Qual o mecanismo de cruzamento?

- Qual o mecanismo de mutação?

- Quais os parametros que estás a usar e respetivos valores?

 

No caso do PSO, preciso de saber:

- Como estás a codificar as partículas?

- Qual a fórmula de atualização de posição?

- Qual a fórmula de atualização da velocidade?

- Quais os parametros que estás a usar e respetivos valores?

 

Poderás não ter necessariamente de alterara a implementação mas antes fazer uma afinação de parâmetros.

 

O teu professor disse para a diversidade diminuir ao longo da evolução? Algo similar ao Simulated Annealing?

 

Se ajudar, explica com um exemplo pequeno.

Compartilhar este post


Link para o post

mano tava a brincar

 

< / 3

 

Ok vamos lá ver... 70% das coisas que falaste não percebi, e trabalhei com algoritmos genéticos e particle swarm durante 7 anos :lol:

 

A primeira dúvida é saber se estás a falar de GA ou PSO ?

 

No caso do GA, preciso de saber:

- Como estás a codificar os indíviduos?

- Qual o mecanismo de selecção de individuos numa nova geração?

- Qual o mecanismo de cruzamento?

- Qual o mecanismo de mutação?

- Quais os parametros que estás a usar e respetivos valores?

 

No caso do PSO, preciso de saber:

- Como estás a codificar as partículas?

- Qual a fórmula de atualização de posição?

- Qual a fórmula de atualização da velocidade?

- Quais os parametros que estás a usar e respetivos valores?

 

Poderás não ter necessariamente de alterara a implementação mas antes fazer uma afinação de parâmetros.

 

O teu professor disse para a diversidade diminuir ao longo da evolução? Algo similar ao Simulated Annealing?

 

Se ajudar, explica com um exemplo pequeno.

 

 

RIP, tentei :lol:

 

Estive a falar de PSO. O GA tenho de fazer ainda.

 

Ok, inicialmente as particulas são geradas aleatoriamente

 

structure = Math.random() * (Math.abs(Parameters.MAX) + Math.abs(Parameters.MIN)) - Math.abs(Parameters.MIN);

velocity = 0.0;

 

Depois, na atualização da posição, somo a posição à velocidade, ou seja

 

population.citizens[particle].structure[coordenate] += population.citizens[particle].velocity[coordenate];

Structure é a posição

 

Atualizo a velocidade com aquela fórmula super simples e intuitiva:

population.citizens[particle].velocity[coordenate]

=

population.citizens[particle].velocity[coordenate] * Parameters.inertia

+ Parameters.cognitive * Math.random()

* (population.citizens[particle].structure[coordenate] - local_best.citizens[particle].structure[coordenate])

+ Parameters.social * Math.random()

* (global_best.structure[coordenate] - population.citizens[particle].structure[coordenate]);

 

Sendo que o local_best é a melhor posição que esta particula já teve

 

E a global_best a melhor posição que toda a população já teve

 

Estes ultimos dois são atualizados sempre no se houver um melhor que o outro

 

E os parametros:

public class Parameters

{

static int structure_length = 5;

Dimensão da função ^

 

static double MIN = 0.0;

static double MAX = Math.PI;

Valores minimos e máximos q os valores podem assumir ^

 

static boolean maximization = false;

 

static int population_size = 1000;

static int max_number_of_generations = 100000;

 

static double inertia = 0.5;

static double cognitive = 3.14;

static double social = 1.5;

^cenas da formula

 

static double m = 10;

^ o m da função michalezics

 

static double diversity_threshold = 0.05;

^coisa q tentei implementar e não consegui, ignora este

}

 

talvez seja dos parametros sim, não experimentei alterar muito

 

pelo que percebi ele disse para evitar que a diversidade da população diminuisse :lol: Simulated annealing acho q só demos para o hill climbing

 

o desenho q o prof fez no quadro e disse que se a diversidade for controlada poderá melhorar o algoritmo:

 

 

FRGndyW.png

 

Editado por Plagio o Original

Compartilhar este post


Link para o post

Muito bem, assim já dá para ver o que estás a fazer :)

 

As fórmulas parecem-me bem, com excepção deste pedaço:

(population.citizens[particle].structure[coordenate] - local_best.citizens[particle].structure[coordenate])

Isto costuma ser ao contrário, similar ao g_best, ou seja:

(local_best.citizens[particle].structure[coordenate] - population.citizens[particle].structure[coordenate])

como podes ver aqui:

https://en.wikipedia.org/wiki/Particle_swarm_optimization

 

Não te esqueças de atualizar a velocidade antes de atualizar a posição.

 

Eu percebi logo o que querias dizer com diversidade, de facto o Simulated Annealing é um algoritmo que faz isso, vai aceitando cada vez menos diversidade à medida que aumenta o número de iterações.

 

Na minha opinião, podes trabalhar um pouco com os parâmetros.

Podes fazer um estudo antes de executar o algoritmo, principalmente com os parametros de inercia, factor cognitivo e factor social.

A inércia influencia a capacidade de "manter" a velocidade, se for superior a 1, vai estar a "acelerar", se for menor que 1 vai estar a "travar".

O fator cognitivo vai influenciar a capacidade de explorar a vizinhança da melhor posição encontrada até ao momento pela partícula (basicamente fazer um hill climbing)

O fator social vai influenciar a capacidade de explorar a vizinhança da melhor posição encontrada por todas as partículas (aqui afeta a convergência das partículas)

 

Outra coisa que pode ser muito interessante fazeres é alterar o valor desses 3 parâmetros ao longo da execução do algoritmo.

Podes começar, p.e., com diminuir a inércia ao longo do tempo.

O fator social afeta a convergência do algoritmo, pelo que terás de validar se tens um valor correto para isto. Quando eu trabalhava com estas coisas, o fator social e cognitivo era igual, mas depende do problema também.

Um teste que podes fazer para verificar se o algoritmo está a convergir muito rapidamente é fazer um gráfico que mostre a melhor solução encontrada ao longo das gerações. Como tens 100000 gerações, se o algoritmo convergir rapidamente, vais ter muitas gerações sem melhorar nada, o algoritmo vai estagnar.

 

Resumindo, faz um estudo dos parâmetros e a sua influência uns nos outros para perceberes o que tens de fazer :)

 

P.S: cuidado também com os boundaries do algoritmo

Editado por ZeroZeroPeras

Compartilhar este post


Link para o post

 

 

 

Estou sem reps

 

basicamente só tinha de mexer nos parametros mesmo, ao invés de tar a fazer coisas estranhas. e atualizava a velocidade depois das coordenadas também, e também tinhas razão da cena da fórmula, tinha trocado a ordem.

 

Agora já me dá resultados bastante aceitáveis

 

muito obrigado!

Compartilhar este post


Link para o post

Estou sem reps

 

basicamente só tinha de mexer nos parametros mesmo, ao invés de tar a fazer coisas estranhas. e atualizava a velocidade depois das coordenadas também, e também tinhas razão da cena da fórmula, tinha trocado a ordem.

 

Agora já me dá resultados bastante aceitáveis

 

muito obrigado!

De nada, ainda bem que consegui ajudar :)

Compartilhar este post


Link para o post

Obrigado a todos pela ajuda. Desculpem só ter respondido agora.

Compartilhar este post


Link para o post

Rapaziada da gestão, o que têm a dizer sobre Scorecard de Capital Humano? Já estudaram sobre o tema e/ou trabalhos sobre isso?

Compartilhar este post


Link para o post

Boas malta!

Alguém do Norte sabe onde imprimir livros (encadernados) a baixos preços? O que vou imprimir é legal, não se preocupem :mrgreen:

 

Lembro-me de há tempos ter visto um serviço online que parecia ter bons preços e me levava o livro a casa, mas já não me lembro qual é.

Compartilhar este post


Link para o post

Boas malta!

Alguém do Norte sabe onde imprimir livros (encadernados) a baixos preços? O que vou imprimir é legal, não se preocupem icon_mrgreen.gif

 

Lembro-me de há tempos ter visto um serviço online que parecia ter bons preços e me levava o livro a casa, mas já não me lembro qual é.

Tens uma ali atrás da FEUP, acho que é barata. Chama-se PrintMe.

Compartilhar este post


Link para o post

Boas malta!

Alguém do Norte sabe onde imprimir livros (encadernados) a baixos preços? O que vou imprimir é legal, não se preocupem :mrgreen:

 

Lembro-me de há tempos ter visto um serviço online que parecia ter bons preços e me levava o livro a casa, mas já não me lembro qual é.

 

Muito bem, e queres imprimir onde, em Bragança, Chaves, Vila Real, Viana do Castelo, Guimarães, Braga, Porto? :confuso:

Compartilhar este post


Link para o post

Tens toda a razão Ricardo, devia ter dito zona do Porto!

E obrigado Henry, vou ver isso!

Compartilhar este post


Link para o post

Crie uma conta ou entre para comentar

Você precisa de ser membro desta comunidade para poder comentar

Criar uma conta

Registe-se na nossa comunidade. É fácil!

Criar nova conta

Entrar

Já tem uma conta? Faça o login.

Autentique-se agora
Entre para seguir isso  

  • Todo o Mundial 2026 no CMPT
  • Popular Agora

  • Outros membros neste tópico

    Nenhum utilizador registado está a visualizar esta página.

×
×
  • Criar Novo...