gstvrmrlpz / energy

Energy consumption of EC implementations in several programming languages
GNU General Public License v3.0
1 stars 0 forks source link

Combinar crossover, mutación y onemax #7

Closed JJ closed 5 days ago

JJ commented 2 weeks ago

Combinarlos en una sola operación, en vez de en diferentes secuencias.

gstvrmrlpz commented 1 week ago

No hay problema en combinarlos pero no le veo sentido puesto que los separamos para poder medir su coste energético por separado. Si ahora los juntamos de nuevo no podremos adjudicarles coste individual. Sería básicamente como ejecutar las 3 últimas fases juntas, no te parece?

JJ commented 1 week ago

En general, se usan juntos en un algoritmo evolutivo; hay que acercar la carga de trabajo al mismo. Individualmente tampoco emplean mucha energía; lo empecé a hacer así porque la mutación en zig empleaba tan poca energía que era prácticamente inapreciable.

gstvrmrlpz commented 1 week ago

a falta de cambiar onemax por hiff, combinando las operaciones produce este resultado en "make test":

gustavo@casa:~/escritorio/energy/c++$ make test
------------------------------------------------
     program      length   energy(J)     time(s)
------------------------------------------------
     bitset2         256       38,52 1,270714470
     bitset2         512       37,87 1,267570881
     bitset2        1024       38,02 1,270276900
     bitset2        2048       38,59 1,264952552
      bitset         256       36,90 1,197901654
      bitset         512       36,48 1,198914073
      bitset        1024       37,38 1,197929093
      bitset        2048       36,83 1,195774004
     string2         256       41,95 1,369815249
     string2         512       44,06 1,366187670
     string2        1024       40,89 1,364629051
     string2        2048       41,72 1,369016110
      string         256       36,46 1,183116008
      string         512       36,23 1,184898827
      string        1024       36,33 1,183748227
      string        2048       35,63 1,186689567
     vector2         256       42,34 1,402055369
     vector2         512       41,62 1,402605509
     vector2        1024       42,22 1,401919880
     vector2        2048       47,92 1,409841276
      vector         256       42,27 1,220160036
      vector         512       39,06 1,211763889
      vector        1024       44,01 1,218514107
      vector        2048       44,45 1,219162847
JJ commented 1 week ago

En el caso de HIFF, no se cambia, se aplica solo HIFF. Gasta lo suficiente como para que no haya que combinarlo con mutación y crossover.

gstvrmrlpz commented 5 days ago

implementado