📄 announce.30
字号:
Science News, August 10, 1991; New York Times, August 27, 1991; ComputerworldSeptember 30, 1991) has generated a lot of interest. I wanted to list therelevant publications, and also the upcoming seminars.Ray, T. S. 1991. ``Is it alive, or is it GA?''Proceedings of the 1991 International Conference on Genetic Algorithms,Eds. Belew, R. K., and L. B. Booker, San Mateo, CA: Morgan Kaufmann, 527--534.Ray, T. S. 1991. ``An approach to the synthesis of life.''Artificial Life II, Santa Fe Institute Studies in the Sciences ofComplexity, vol. XI, Eds. C. Langton, C. Taylor, J. D. Farmer, & S. Rasmussen,Redwood City, CA: Addison-Wesley, 371--408.Ray, T. S. 1991. ``Population dynamics of digital organisms.''Artificial Life II Video Proceedings, Ed. C. G. Langton,Redwood City, CA: Addison Wesley.Ray, T. S. 1991. ``Evolution and optimization of digital organisms.''Scientific Excellence in Supercomputing: The IBM 1990 Contest Prize Papers,Eds. Keith R. Billingsley, Ed Derohanes, Hilton Brown, III.Athens, GA, 30602, The Baldwin Press, The University of Georgia.Publication date: December 1991.I will be at the Santa Fe Institute Feb. 1 thru Aug. 31, 1992.This work will also be presented in the following upcoming seminars:Boston University, Computational Sciences Center, December 3, 1991MIT Nanotechnology Study Group, December 3, 1991Bolt Beranek and Newman Inc. (BBN), December 5, 1991University of Massachusetts Boston, Biology, December 5, 1991Yale University, Biology, December 6, 1991Apple Computer, California, February 27, 1992University of Arizona, Ecology & Evolutionary Biology, March 10, 1992Santa Fe Institute, Workshop on Adaptive Computation, March 10-15, 1992Cornell University, Mathematical Sciences Institute, CA Workshop, May 1992General Motors, Sigma Xi, Warren, MI, May 1992Summer School on Environmental Dynamics, Istituto Veneto Di Scienze, Lettere Ed Arti, Venice, Italy, June 1-7, 1992Gordon Conference on Theoretical Biology, New Hampshire, June 9-12, 19926) Some interesting new and unpublished resultsBelow is a report of an interesting result that is not described inany of the publications listed above:A COMPLEX ADAPTATIONThe adaptation described below is a classic example of intricate design inevolution. One wonders how it could have arisen through random bit flips,as every component of the code must be in place in order for the algorithmto function. Yet the code includes a classic mix of apparent intelligentdesign, and the chaotic hand of evolution. The optimization technique is avery clever one invented by humans, yet it is implemented in a mixed up butfunctional style that no human would use (unless perhaps very intoxicated).The arms race described in the manuscripts took place over a period ofa billion instructions executed by the system. Another run was allowed tocontinue for fifteen billion instructions, but was not examined in detail.A creature present at the end of the run was examined and found to haveevolved an intricate adaptation. The adaptation is an optimization techniqueknown as ``unrolling the loop''.The central loop of the copy procedure performs the following operations:1) copies an instruction from the mother to the daughter, 2) decrements thecx register which initially contains the size of the parent genome, 3) teststo see if cx is equal to zero, if so it exits the loop, if not it remainsin the loop, 4) increments the ax register which contains the address in thedaughter where the next instruction will be copied to, 5) increments thebx register which contains the address in the mother where the next instructionwill be copied from, 6) jumps back to the top of the loop.The work of the loop is contained in steps 1, 2, 4 and 5. Steps 3 and 6 areoverhead. The efficiency of the loop can be increased by duplicating thework steps within the loop, thereby saving on overhead. The creature fromthe end of the long run had repeated the work steps three times within theloop, as illustrated below.The unrolled loop is an example of the ability of evolution to produce anincrease in complexity, gradually over a long period of time. The interestingthing about the loop unrolling optimization technique is that it requires morecomplex code. The resulting creature has a genome size of 36, compared to itsancestor of size 80, yet it has packed a much more complex algorithm into lessthan half the space.Below I include the assembler code for the central copy loop of the ancestor(80aaa) and decendant after fifteen billion instructions (72etq). Withinthe loop, the ancestor does each of the following operations once: copyinstruction (51), decrement cx (52), increment ax (59) and increment bx (60).The decendant performs each of the following operations three times withinthe loop: copy instruction (15, 22, 26), increment ax (20, 24, 31) andincrement bx (21, 25, 32). The decrement cx operation occurs five timeswithin the loop (16, 17, 19, 23, 27). Instruction 28 flips the low orderbit of the cx register. Whenever this latter instruction is reached, thevalue of the low order bit is one, so this amounts to a sixth instance ofdecrement cx. This means that there are two decrements for every increment.The reason for this is related to another adaptation of this creature. Whenit calculates its size, it shifts left (12) before allocating space for thedaughter (13). This has the effect of allocating twice as much space asis actually needed to accomodate the genome. The genome of the creatureis 36 instructions long, but it allocates a space of 72 instructions.This occurred in an environment where the slice size was set equal to thesize of the cell. In this way the creatures were able to garner twice asmuch energy. However, they had to compliment this change by doubling thenumber of decrements in the loop.nop_1 ; 01 47 copy loop template COPY LOOP OF 80AAAnop_0 ; 00 48 copy loop templatenop_1 ; 01 49 copy loop templatenop_0 ; 00 50 copy loop templatemov_iab ; 1a 51 move contents of [bx] to [ax] (copy instruction)dec_c ; 0a 52 decrement cxif_cz ; 05 53 if cx = 0 perform next instruction, otherwise skip itjmp ; 14 54 jump to template below (copy procedure exit)nop_0 ; 00 55 copy procedure exit complimentnop_1 ; 01 56 copy procedure exit complimentnop_0 ; 00 57 copy procedure exit complimentnop_0 ; 00 58 copy procedure exit complimentinc_a ; 08 59 increment ax (point to next instruction of daughter)inc_b ; 09 60 increment bx (point to next instruction of mother)jmp ; 14 61 jump to template below (copy loop)nop_0 ; 00 62 copy loop complimentnop_1 ; 01 63 copy loop complimentnop_0 ; 00 64 copy loop complimentnop_1 ; 01 65 copy loop compliment (10 instructions executed per loop)shl ; 000 03 12 shift left cx COPY LOOP OF 72ETQmal ; 000 1e 13 allocate daughter cellnop_0 ; 000 00 14 top of loopmov_iab ; 000 1a 15 copy instructiondec_c ; 000 0a 16 decrement cxdec_c ; 000 0a 17 decrement cxjmpb ; 000 15 18 junkdec_c ; 000 0a 19 decrement cxinc_a ; 000 08 20 increment axinc_b ; 000 09 21 increment bxmov_iab ; 000 1a 22 copy instructiondec_c ; 000 0a 23 decrement cxinc_a ; 000 08 24 increment axinc_b ; 000 09 25 increment bxmov_iab ; 000 1a 26 copy instructiondec_c ; 000 0a 27 decrement cxor1 ; 000 02 28 flip low order bit of cxif_cz ; 000 05 29 if cx == 0 do next instructionret ; 000 17 30 exit loopinc_a ; 000 08 31 increment axinc_b ; 000 09 32 increment bxjmpb ; 000 15 33 go to top of loop (6 instructions per copy)nop_1 ; 000 01 34 bottom of loop (18 instructions executed per loop) Tom Ray University of Delaware School of Life & Health Sciences Newark, Delaware 19716 ray@brahms.udel.edu 302-451-2281 (FAX) 302-451-2753
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -