Closed JJ closed 5 days 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?
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.
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
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.
implementado
Combinarlos en una sola operación, en vez de en diferentes secuencias.