Autor Tópico: Reprodução Sexuada versus Assexuada  (Lida 5822 vezes)

0 Membros e 1 Visitante estão vendo este tópico.

Offline Cristiano

  • Nível 11
  • *
  • Mensagens: 186
Reprodução Sexuada versus Assexuada
« Online: 12 de Julho de 2005, 16:09:05 »
Bom, não sei se aqui é um bom lugar para postar isso, mas o que eu vou mostrar aqui é algo que eu venho estudando recentemente: Algoritmos Genéticos (e Programação Genética), o que são: Basicamente eu pego um vetor com várias Strings inicializadas aleatoriamente (lixo) e através de algoritmos genéticos evoluimos essas strings dando preferencias às strings  apresentando a menor diferença com a String alvo (nesse caso há um alvo pré-definido, mas o algoritmo poderia ser utilizado para evoluir até uma solução ótima não definida pelo operador, algo como: evoluir o melhor circuito para tais componentes poder realizar tais tarefas).

Bom, vamos lá, todos os exemplos vão mostrar 300 strings competindo entre si e será mostrada a melhor a cada iteração.
Reprodução sexuada funciona assim:
Temos 2 strings: a) XXXXXXXXXX e b) YYYYYYYYYY e cria-se uma string filha copiando partes das 2 em uma posição aleatória, resultando em algo como: XXXYYYYYYY ou XXXXXXYYYY.
Mutação: Quando ocorre muda uma posição determinada da String, como: a) XXXXXXXXXX vira XXYXXXXXXX  (estamos considerando apenas as letras X e Y aqui, mas não é o caso do exemplo que vai considerar todo o codigo ASCII com 256 possiveis letras.

Uma nota: Na saída, o numero entre parenteses é o "Erro", ou seja, a diferença entre a string e a string alvo, quanto menor, melhor, sendo (0) a String alvo.

Vamos lá, começando (apaguei algumas saídas para não ficar muita coisa):
Reprodução Assexuada:
 (1266) Iterações:0 Best: Nç{#´??c¡zRF"À?U?ÇN?£ÖF
 (1266) Iterações:1 Best: Nç{#´??c¡zRF"À?U?ÇN?£ÖF
 (1067) Iterações:2 Best: wqÇèvn?eÅnE. ´?+?y-?fB©V
 (1067) Iterações:3 Best: wqÇèvn?eÅnE. ´?+?y-?fB©V
 (934) Iterações:4 Best: JPÊsXBEeiªx_?l?|gK5Q?³)i
 (878) Iterações:5 Best: JPÊsXBEeiªx_?l?|gK5ÇN?£m+
 (686) Iterações:10 Best: JPÊsXBEeiÏ?*ZZR?gct^&v?
 (686) Iterações:11 Best: JPÊsXBEeiÏ?*ZZR?gct^&v?
 (564) Iterações:12 Best: JPÊsXBEec¡F+<c;R?gct^&v?
 (564) Iterações:13 Best: JPÊsXBEec¡F+<c;R?gct^&v?
 (552) Iterações:14 Best: LLwf   -@eiªF+<c;R?gct^&v?
 (477) Iterações:15 Best: LLwf?!6NTd??lKJ?gct^&v?
 (436) Iterações:18 Best: LLwf?!6NTd??lKJ?gct^sv?
 (426) Iterações:19 Best: JPwfXBEeRd??lKJ?gct^sv?
 (402) Iterações:20 Best: LLwfXBEeinx<c;R?gct^BZ?
 (389) Iterações:21 Best: JPwfXBEeinx+5?+?gct^&v?
 (374) Iterações:22 Best: LLwfXBEeinE.?lRoij??sv?
 (354) Iterações:23 Best: LpwfXBEeinx+<c;R?gctjsv?
 (337) Iterações:24 Best: LLwf?!EeTdx+5?+ogctnsZV
 (321) Iterações:25 Best: LewsXBEeiox<cJ?gct^sv?
 (297) Iterações:26 Best: LpwsXBQeinx??+ogct^sv?
 (237) Iterações:33 Best: LewfX!Qtinx??+ogctjsv?
 (141) Iterações:64 Best: LeokX!Wtinqy?Jogctjape
 (141) Iterações:65 Best: LeokX!Wtinqy?Jogctjape
 (137) Iterações:66 Best: JeokX Wtinqy?Jogctjarh
 (137) Iterações:67 Best: JeokX Wtinqy?Jogctjarh
 (134) Iterações:68 Best: LeokX Wtinqy?Jogctjarh
 (132) Iterações:69 Best: JeokX Wtinqy?Jogctjarh
 (132) Iterações:70 Best: JeokX Wtinqy?Jogctjarh
 (130) Iterações:71 Best: JeokX WtinlyzJogctjarh
 (130) Iterações:72 Best: JeokX WtinlyzJogctjarh
 (128) Iterações:73 Best: JeokX Wninly?Jogctjarh
 (126) Iterações:74 Best: JeokX WtinqyzJogctjarh
 (126) Iterações:75 Best: JeokX WtinqyzJogctjarh
 (123) Iterações:76 Best: Jeok_ WtinlyzJogctjarh
 (123) Iterações:77 Best: Jeok_ WtinlyzJogctjarh
 (121) Iterações:78 Best: Jeok_ Wtinly?Hogctjaph
 (119) Iterações:79 Best: Jeok_ WtinlyzJogctjarh
 (106) Iterações:85 Best: Heok_ WtinluzJogctjalh
 (106) Iterações:86 Best: Heok_ WtinluzJogctjalh
 (102) Iterações:87 Best: Hemk_ WninlyzHogctjalh
 (101) Iterações:88 Best: Heok_ WtrnlyzJogctjalh
 (100) Iterações:89 Best: HemkX WtrnluzHogctjalh
 (95) Iterações:90 Best: Jemk_ WtrnluzHogctjaph
 (93) Iterações:91 Best: Hemk_ Wtrnl!uzHogctjalh
 (93) Iterações:92 Best: Hemk_ Wtrnl!uzHogctjalh
 (91) Iterações:93 Best: Heok_ WnrnlyzHogctjall
 (91) Iterações:94 Best: Heok_ WnrnlyzHogctjall
 (89) Iterações:95 Best: Hemk_ WnrnluzHogctjalh
 (89) Iterações:96 Best: Hemk_ WnrnluzHogctjalh
 (85) Iterações:97 Best: Hemk_ WnrnluzHogctjall
 (85) Iterações:98 Best: Hemk_ WnrnluzHogctjall
 (82) Iterações:99 Best: Hemkb WnrnluzHogctjall
 (82) Iterações:100 Best: Hemkb WnrnluzHogctjall
 (82) Iterações:101 Best: Hemkb WnrnluzHogctjall
 (82) Iterações:102 Best: Hemkb WnrnluzHogctjall
 (81) Iterações:103 Best: Hemk_ WnrnluzDogctjall
 (81) Iterações:104 Best: Hemk_ WnrnluzDogctjall
 (80) Iterações:105 Best: Hemkb WnrlluzHogctjall
 (78) Iterações:106 Best: Hemkb WnrnluzDogctjall
 (78) Iterações:107 Best: Hemkb WnrnluzDogctjall
 (74) Iterações:108 Best: Hemkb WnrnlqzDogctjall
 (74) Iterações:109 Best: Hemkb WnrnlqzDogctjall
 (74) Iterações:110 Best: Hemkb WnrnlqzDogctjall
 (68) Iterações:111 Best: Hemkb WnrnlkzDogctjall
 (68) Iterações:112 Best: Hemkb WnrnlkzDogctjall
 (68) Iterações:113 Best: Hemkb WnrnlkzDogctjall
 (68) Iterações:114 Best: Hemkb WnrnlkzDogctjall
 (57) Iterações:122 Best: Hemkb WnrndkzDsgctjall!
 (57) Iterações:123 Best: Hemkb WnrndkzDsgctjall!
 (53) Iterações:124 Best: Hemkb WnrndezDogctjall!
 (53) Iterações:125 Best: Hemkb WnrndezDogctjall!
 (53) Iterações:126 Best: Hemkb WnrndezDogctjall!
 (52) Iterações:127 Best: Hemkb WnrndezDsgctjall
 (52) Iterações:128 Best: Hemkb WnrndezDsgctjall
 (51) Iterações:129 Best: Hemkb WnrndezDsgctjall!
 (47) Iterações:130 Best: Hemkb WnrndezDsggtjall!
 (47) Iterações:131 Best: Hemkb WnrndezDsggtjall!
 (45) Iterações:132 Best: Hemkd WnrndezDsggtjall!
 (45) Iterações:133 Best: Hemkd WnrndezDsggtjall!
 (42) Iterações:134 Best: Hemkd WnrndbzDsggtjall!
 (42) Iterações:135 Best: Hemkd WnrndbzDsggtjall!
 (42) Iterações:136 Best: Hemkd WnrndbzDsggtjall!
 (20) Iterações:167 Best: Hemkj WnrndbyDsjstjaln!
 (20) Iterações:168 Best: Hemkj WnrndbyDsjstjaln!
 (19) Iterações:169 Best: Hemkj WnrndbyDsjstjamn!
 (16) Iterações:176 Best: Hemkn WnrndbyDsjrtjamn!
 (15) Iterações:177 Best: Hemkn WnrndbyDsjstjamn!
 (15) Iterações:178 Best: Hemkn WnrndbyDsjstjamn!
 (14) Iterações:179 Best: Hemkn WnrndbyDsjstjamo!
 (14) Iterações:180 Best: Hemkn WnrndbyDsjstjamo!
 (13) Iterações:181 Best: Hemkn WnrmdbyDsjstjamo!
 (13) Iterações:182 Best: Hemkn WnrmdbyDsjstjamo!
 (13) Iterações:183 Best: Hemkn WnrmdbyDsjstjamo!
 (12) Iterações:184 Best: Hemkn WnrmdbyDrjstjamo!
 (12) Iterações:185 Best: Hemkn WnrmdbyDrjstjamo!
 (12) Iterações:186 Best: Hemkn WnrmdbyDrjstjamo!
 (12) Iterações:187 Best: Hemkn WnrmdbyDrjstjamo!
 (12) Iterações:188 Best: Hemkn WnrmdbyDrjstjamo!
 (11) Iterações:189 Best: Hemkn WnrmdbyDrjstjano!
 (11) Iterações:190 Best: Hemkn WnrmdbyDrjstjano!
 (11) Iterações:191 Best: Hemkn WnrmdbyDrjstjano!
 (11) Iterações:192 Best: Hemkn WnrmdbyDrjstjano!
 (10) Iterações:193 Best: Hemko WnrmdbyDrjstjano!
 (10) Iterações:194 Best: Hemko WnrmdbyDrjstjano!
 (10) Iterações:195 Best: Hemko WnrmdbyDrjstjano!
 (10) Iterações:196 Best: Hemko WnrmdbyDrjstjano!
 (9) Iterações:197 Best: Hemko WnrmdbyCrjstjano!
 (9) Iterações:198 Best: Hemko WnrmdbyCrjstjano!
 (9) Iterações:199 Best: Hemko WnrmdbyCrjstjano!
 (9) Iterações:200 Best: Hemko WnrmdbyCrjstjano!
 (9) Iterações:201 Best: Hemko WnrmdbyCrjstjano!
 (8) Iterações:202 Best: Hemko WnrldbyCrjstjano!
 (8) Iterações:203 Best: Hemko WnrldbyCrjstjano!
 (7) Iterações:204 Best: Hemko Wnrmdby Crjstjano!
 (7) Iterações:205 Best: Hemko Wnrmdby Crjstjano!
 (7) Iterações:206 Best: Hemko Wnrmdby Crjstjano!
 (4) Iterações:237 Best: Helko Worldby Crjstjano!
 (4) Iterações:238 Best: Helko Worldby Crjstjano!
 (4) Iterações:239 Best: Helko Worldby Crjstjano!
 (4) Iterações:240 Best: Helko Worldby Crjstjano!
 (4) Iterações:241 Best: Helko Worldby Crjstjano!
 (4) Iterações:242 Best: Helko Worldby Crjstjano!
 (3) Iterações:243 Best: Helko Worldby Cristjano!
 (3) Iterações:244 Best: Helko Worldby Cristjano!
 (3) Iterações:245 Best: Helko Worldby Cristjano!
 (3) Iterações:246 Best: Helko Worldby Cristjano!
 (3) Iterações:247 Best: Helko Worldby Cristjano!
 (3) Iterações:248 Best: Helko Worldby Cristjano!
 (3) Iterações:249 Best: Helko Worldby Cristjano!
 (2) Iterações:250 Best: Helko Worldby Cristiano!
 (2) Iterações:251 Best: Helko Worldby Cristiano!
 (2) Iterações:252 Best: Helko Worldby Cristiano!
 (2) Iterações:253 Best: Helko Worldby Cristiano!
 (2) Iterações:254 Best: Helko Worldby Cristiano!
 (2) Iterações:261 Best: Helko Worldby Cristiano!
 (2) Iterações:262 Best: Helko Worldby Cristiano!
 (2) Iterações:263 Best: Helko Worldby Cristiano!
 (2) Iterações:264 Best: Helko Worldby Cristiano!
 (2) Iterações:265 Best: Helko Worldby Cristiano!
 (2) Iterações:266 Best: Helko Worldby Cristiano!
 (2) Iterações:267 Best: Helko Worldby Cristiano!
 (2) Iterações:268 Best: Helko Worldby Cristiano!
 (2) Iterações:269 Best: Helko Worldby Cristiano!
 (2) Iterações:270 Best: Helko Worldby Cristiano!
 (2) Iterações:271 Best: Helko Worldby Cristiano!
 (2) Iterações:272 Best: Helko Worldby Cristiano!
 (2) Iterações:273 Best: Helko Worldby Cristiano!
 (2) Iterações:274 Best: Helko Worldby Cristiano!
 (2) Iterações:275 Best: Helko Worldby Cristiano!
 (2) Iterações:276 Best: Helko Worldby Cristiano!
 (2) Iterações:277 Best: Helko Worldby Cristiano!
 (1) Iterações:278 Best: Hello Worldby Cristiano!
 (1) Iterações:279 Best: Hello Worldby Cristiano!
 (1) Iterações:280 Best: Hello Worldby Cristiano!
 (1) Iterações:281 Best: Hello Worldby Cristiano!
 (1) Iterações:282 Best: Hello Worldby Cristiano!
 (1) Iterações:283 Best: Hello Worldby Cristiano!
 (1) Iterações:284 Best: Hello Worldby Cristiano!
 (1) Iterações:285 Best: Hello Worldby Cristiano!
 (1) Iterações:286 Best: Hello Worldby Cristiano!
 (1) Iterações:287 Best: Hello Worldby Cristiano!
 (1) Iterações:288 Best: Hello Worldby Cristiano!
 (1) Iterações:289 Best: Hello Worldby Cristiano!
 (1) Iterações:290 Best: Hello Worldby Cristiano!
 (1) Iterações:291 Best: Hello Worldby Cristiano!
 (1) Iterações:292 Best: Hello Worldby Cristiano!
 (1) Iterações:293 Best: Hello Worldby Cristiano!
 (1) Iterações:294 Best: Hello Worldby Cristiano!
 (1) Iterações:295 Best: Hello Worldby Cristiano!
 (1) Iterações:296 Best: Hello Worldby Cristiano!
 (1) Iterações:297 Best: Hello Worldby Cristiano!
 (1) Iterações:298 Best: Hello Worldby Cristiano!
 (1) Iterações:299 Best: Hello Worldby Cristiano!
 (1) Iterações:300 Best: Hello Worldby Cristiano!
 (1) Iterações:301 Best: Hello Worldby Cristiano!
 (1) Iterações:302 Best: Hello Worldby Cristiano!
 (1) Iterações:303 Best: Hello Worldby Cristiano!
 (1) Iterações:304 Best: Hello Worldby Cristiano!
 (1) Iterações:305 Best: Hello Worldby Cristiano!
 (1) Iterações:306 Best: Hello Worldby Cristiano!
 (1) Iterações:307 Best: Hello Worldby Cristiano!
 (1) Iterações:308 Best: Hello Worldby Cristiano!
 (1) Iterações:309 Best: Hello Worldby Cristiano!
 (1) Iterações:310 Best: Hello Worldby Cristiano!
 (1) Iterações:311 Best: Hello Worldby Cristiano!
 (1) Iterações:312 Best: Hello Worldby Cristiano!
 (1) Iterações:313 Best: Hello Worldby Cristiano!
 (1) Iterações:314 Best: Hello Worldby Cristiano!
 (1) Iterações:315 Best: Hello Worldby Cristiano!
 (1) Iterações:316 Best: Hello Worldby Cristiano!
 (1) Iterações:317 Best: Hello Worldby Cristiano!
 (1) Iterações:330 Best: Hello Worldby Cristiano!
 (1) Iterações:331 Best: Hello Worldby Cristiano!
 (1) Iterações:332 Best: Hello Worldby Cristiano!
 (1) Iterações:333 Best: Hello Worldby Cristiano!
 (1) Iterações:334 Best: Hello Worldby Cristiano!
 (1) Iterações:335 Best: Hello Worldby Cristiano!
 (1) Iterações:336 Best: Hello Worldby Cristiano!
 (0) Iterações:337 Best: Hello World by Cristiano!

Bom, 337 iterações (essa é a média, variando pouca coisa entre uma e outra tentativa)

Agora, sem mutação, para testar:
 (240) Iterações:31 Best: ?f{ok9Thih!j?6?t??nkok0
 (231) Iterações:32 Best: ?f{ok9TuihQ!j?6?t??nkok0
 (231) Iterações:33 Best: ?f{ok9TuihQ!j?6?t??nkok0
 (231) Iterações:34 Best: ?f{ok9TuihQ!j?6?t??nkok0
 (225) Iterações:35 Best: ?f{ok9ThihQ!j?R?g??nkok0
 (220) Iterações:36 Best: ?f{ok9TuihQ!j?6?t??nkok%
 (220) Iterações:37 Best: ?f{ok9TuihQ!j?6?t??nkok%
 (211) Iterações:38 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:39 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:40 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:41 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:42 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:43 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:44 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:45 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:46 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:146 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:147 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:148 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:149 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:150 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:151 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:152 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:153 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:154 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:155 Best: ?f{ok9TuihQ!j?6?g??nkok%
 (211) Iterações:156 Best: ?f{ok9TuihQ!j?6?g??nkok%
(ad infinitum)
O que houve: Sem mutação, o código genético não muda, nova informação não é inserida, o resultado são strings imcompletas e imutáveis (o que levaria a extinção das frases já que o conteúdo é lixo).

Agora, reprodução assexuada (ou seja, a string filha é idêntica à string pai, mas a filha sofre ação da mutação).
Bom, está rodando aqui, já possui 1700 iterações e o erro ainda é de 1250, mutações é um processo lento, 3000 iterações e erro de 1209...
O problema maior: não há cooperação entre as Strings, com reprodução sexuada, 2 strings boas dão lugar a uma string melhor, com mutação isso não acontece já que é cada um por si.
Vou parar o experimento, pois estamos em 4779 iterações e o erro subiu para 1213, eis as ultimas saídas:

 (1226) Iterações:4745 Best: %æfá]???)n¿?*?}¦äO?wV
 (1226) Iterações:4746 Best: %æfá]???)n¿?*?}¦äO?wV
 (1221) Iterações:4747 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1221) Iterações:4748 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1221) Iterações:4749 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1221) Iterações:4750 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1221) Iterações:4751 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1221) Iterações:4752 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1219) Iterações:4753 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1219) Iterações:4754 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1219) Iterações:4755 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1219) Iterações:4756 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1219) Iterações:4757 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1218) Iterações:4758 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1218) Iterações:4759 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1218) Iterações:4760 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1218) Iterações:4761 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1218) Iterações:4762 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1218) Iterações:4763 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1218) Iterações:4764 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1218) Iterações:4765 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1218) Iterações:4766 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1218) Iterações:4767 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1218) Iterações:4768 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1219) Iterações:4769 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1219) Iterações:4770 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1219) Iterações:4771 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1219) Iterações:4772 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1219) Iterações:4773 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1219) Iterações:4774 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1219) Iterações:4775 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1219) Iterações:4776 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1219) Iterações:4777 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1217) Iterações:4778 Best: %æfÜ]???)n¿?*?}¦äO?wV
 (1213) Iterações:4779 Best: %æfÜU???)n¿?*?}¦äO?wV


Conclusão: Reprodução sexuada obviamente é a melhor solução que a natureza apresenta para variação genética de forma coordenada e produtiva, e rápida pois demanda poucas gerações para se adequar às mudanças no ambiente.

Espero que seja util esse texto.
Ps:Quem quiser o programa em Java, é só me avisar.  
Ultimamente venho testando Algoritmos Geneticos com minha máquina virtual do microcontrolador 8051 com o objetivo de fazer programas automaticamente, provavelmente vou ter que mudar a abordagem para algo de maior nivel, como Programação Genética, mas por hora, até que funcionou relativamente bem.

Abraços,
Cristiano

Offline L. Duran

  • Nível 24
  • *
  • Mensagens: 1.077
  • Sexo: Masculino
    • Falando de Autismo
Re.: Reprodução Sexuada versus Assexuada
« Resposta #1 Online: 12 de Julho de 2005, 16:13:38 »
Cristiano,

Manda o programa em java pra mim, por favor.
Você que escreveu os algoritmos e as classes?

[]´s
"O mundo necessita de todos os tipos de mente trabalhando juntas." - Temple Grandin

http://falandodeautismo.com.br

Offline Cristiano

  • Nível 11
  • *
  • Mensagens: 186
Re.: Reprodução Sexuada versus Assexuada
« Resposta #2 Online: 12 de Julho de 2005, 16:57:31 »
O Duran, sim, eu escrevi a partir de um algoritmo simples, esse aqui: http://www.generation5.org/content/2003/gahelloworld.asp
Dê uma olhada, o código é em C mas é facilmente traduzivel para Java, se não servir, me avise que eu mando em Java.

abraço

Offline L. Duran

  • Nível 24
  • *
  • Mensagens: 1.077
  • Sexo: Masculino
    • Falando de Autismo
Re.: Reprodução Sexuada versus Assexuada
« Resposta #3 Online: 12 de Julho de 2005, 17:07:06 »
Consigo ler C, mas em java é melhor. Já tenho o Eclipse instalado!
Mande no meu e-mail le.duran@terra.com.br

Abraço,
"O mundo necessita de todos os tipos de mente trabalhando juntas." - Temple Grandin

http://falandodeautismo.com.br

Offline Cristiano

  • Nível 11
  • *
  • Mensagens: 186
Re.: Reprodução Sexuada versus Assexuada
« Resposta #4 Online: 12 de Julho de 2005, 17:18:52 »
Mandei, renomeie o arquivo de java.zip.tmp para java.zip (o gmail deu um erro na hora de mandar)
Mas, ja vou avisando, o código é feio, não sou muito bom em decorar código java...
Bom, a principal função que você vai ter que mudar é a getFitness (tem duas aqui, uma para o jASM e outra para o HelloWorld).
Se quiser mudar o tipo de saída do dado, mude a variavel showIn para tpHex ou tpChr (tem mais tipo, mas só implementei esses dois).
Boa sorte, hehe

Offline Buckaroo Banzai

  • Nível Máximo
  • *
  • Mensagens: 36.242
  • Sexo: Masculino
Re.: Reprodução Sexuada versus Assexuada
« Resposta #5 Online: 12 de Julho de 2005, 20:36:24 »
pergunta semi-OT, me lembrei por causa disso de simulações....... queria perguntar no orkut mas me enchi daquilo....

nessas simulações "famosas" de vida artificial (que não tem muito a ver com o que foi feito aqui, na verdade), a recombinação já surgiu espontâneamente? Se não, por que não? Se sim, quantos sexos?

Offline Esperto

  • Nível 25
  • *
  • Mensagens: 1.154
Re.: Reprodução Sexuada versus Assexuada
« Resposta #6 Online: 12 de Julho de 2005, 21:44:32 »
tenho um colega que está usando algorítimos genéticos para evoluir circuitos....
filosofia de um professor meu:
"A mente abre quando o cu aperta!"

Offline Snake

  • Nível 31
  • *
  • Mensagens: 2.049
  • Sexo: Masculino
Re.: Reprodução Sexuada versus Assexuada
« Resposta #7 Online: 12 de Julho de 2005, 22:00:04 »
Não tem como colocar o programa em Java como anexo aqui?
Newton's Law of Gravitation:
What goes up must come down. But don't expect it to come down where you can find it. Murphy's Law applies to Newton's.

Offline Esperto

  • Nível 25
  • *
  • Mensagens: 1.154
Re: Re.: Reprodução Sexuada versus Assexuada
« Resposta #8 Online: 12 de Julho de 2005, 22:18:48 »
Citação de: Danniel
pergunta semi-OT, me lembrei por causa disso de simulações....... queria perguntar no orkut mas me enchi daquilo....

nessas simulações "famosas" de vida artificial (que não tem muito a ver com o que foi feito aqui, na verdade), a recombinação já surgiu espontâneamente? Se não, por que não? Se sim, quantos sexos?

até onde conheço desses algorítimos a recombinação já é parte deles, o que vc faz é entrar com um valor que diz o quanto de recombinação (mutação, crossover, etc) e como ele vai fazer isso, pq tem vários métodos.
acho que eles não deixam a recombinação aparecer pq o objetivo normalmente é resolver um problema usando o método, e esperar que o próprio algorítimo desenvolva a troca torna ele ineficiente no começo (isso se ela surgir na interação que vc fizer, pq pode haver algumas que desenvolvam e outras que não), e vc quer que o tempo gasto seja o menor possível.
filosofia de um professor meu:
"A mente abre quando o cu aperta!"

Offline Cristiano

  • Nível 11
  • *
  • Mensagens: 186
Re: Re.: Reprodução Sexuada versus Assexuada
« Resposta #9 Online: 13 de Julho de 2005, 09:05:03 »
Citação de: Danniel
pergunta semi-OT, me lembrei por causa disso de simulações....... queria perguntar no orkut mas me enchi daquilo....

nessas simulações "famosas" de vida artificial (que não tem muito a ver com o que foi feito aqui, na verdade), a recombinação já surgiu espontâneamente? Se não, por que não? Se sim, quantos sexos?

Olha, se não me engano no Tierra surgiu reprodução sexuada espontaneamente, o autor pelo menos citava isso, claro que é essencial que a arquitetura permita que tenha mais do que um sexo.
O Tierra eu considero a melhor simulação de vida artificial, cada ser vivo é um programa em Asm e eles compartilham uma mesma área de memória.

Bom, estou mandando o programa anexado nesse post, além das recomendações anteriores, mudam o valor da variavel GA_ELITRATE para algo como 0.05,está 1f agora, senão não funciona.

flw

Offline Cristiano

  • Nível 11
  • *
  • Mensagens: 186
Re: Re.: Reprodução Sexuada versus Assexuada
« Resposta #10 Online: 13 de Julho de 2005, 09:05:51 »
Citação de: esperto
tenho um colega que está usando algorítimos genéticos para evoluir circuitos....

Legal, pretendo fazer isso também...  :)

Offline Unsichtbar

  • Nível 19
  • *
  • Mensagens: 584
  • Sexo: Masculino
Re: Re.: Reprodução Sexuada versus Assexuada
« Resposta #11 Online: 21 de Julho de 2005, 17:08:00 »
Citação de: Cristiano
Citação de: esperto
tenho um colega que está usando algorítimos genéticos para evoluir circuitos....

Legal, pretendo fazer isso também...  :)


Algorítmos Genéticos também têm aplicações em Otimização. Pode ser aplicado como Método de Busca Aleatória para Otimização de Processos...
Até então não conhecia, começamos a ver alguns métodos de buscas (baseados em analogias com sistemas naturais para busca de pontos ótimos em problemas de otimização) na disciplina de 'Otimização de Processos'.
Existem outros métodos baseados, por exemplo, no movimento dos pássaros, cardumes e enxames: 'Particle Swarm Optimization', no comportamento de uma colônia de formigas baseado no seu mecanismo de cooperação e aprendizado: 'Ant System'...

Pra quem quiser, tem este artigo com aplicação de Algorítmos Genéticos na Otimização de Sistema para Engenharia:
http://ftp://143.54.45.100/cursos/pos/otimiza/refere~1/multio~1.pdf

[]'s

 

Do NOT follow this link or you will be banned from the site!