Download presentation
Presentation is loading. Please wait.
Published byAmi Cecilia Knight Modified over 9 years ago
1
GAIA (Genetic Algorithm Interface Architecture) Midterm Progress Presentation Created By: Charles Hall Héctor Aybar William Grim Simone Connors
3
CS 425: Tentative Schedule Prototype 1 (10/11/04) Function Pointers, Bit-string Functionality Prototype 2 (11/08/04) Integer and Double-string Functionality Prototype 3 (12/6/04) Efficiency Improvements
4
499: Tentative Schedule October 26 Everything Except gaia_optimize() Finished November 9 Coding & Testing Complete Ready to deliver December 14 Traveling Salesman Program Finished Final Presentation
6
Testing Gaia Modules Vector module Internal ADT that contains operations to be performed on a vector Testing performed by Hector and Simone Set module Internal ADT that contains operations to be performed on a set Testing performed by Hector and Simone Bit String module Module that performs operation on a chromosome of bit_string gene type Error, Mutex, and Generalize modules Internal modules Tested in other modules that they are dependent on them
7
Testing Strategy Programmer Testing Programmers individually test their code to ensure that module works Modular Testing Testers perform testing on individual modules to reveal errors and validate the module For each test case, each statement, branch or path is executed in the module to find errors Integration Testing Integrate modules together and perform further testing Inform Programmers of errors found Document each test case in Test Case Specifications
9
Our Environment and Conventions Doxygen Error Handling Debugging Build System Automation
10
Doxygen Automated generation of source code documentation: HTML Latex PDF Man Pages Uses comments in the source code to produce comments in web pages. Uses actual source code to produce UML charts. http://home.cs.siue.edu/gaia/doc/
11
Error Handling Return values of -1 for integer functions. Return values of 0 (NULL) for pointer functions. GAIA libraries print error messages to syslog() using options specified by the user in openlog(): Print to screen. Print to logging facilities. Print identification with logs.
12
Debugging Two primary levels: Debugging using *DEBUG macros, profiling, and gdb extensions. Debugging using debug levels. Messages are sent to the D_PRINT macro, which sends the message to syslog(). D_PRINT is empty if NODEBUG is not defined.
13
Build System Based around BSD/Make and GNU/Make. Speeds development: No need to rebuild objects that are unchanged and already built. No need to remember build parameters. Source code expansion is easy, using Makefile dependencies and environment passing. To be extended by autoconf and automake.
14
Automation Scripts and Cron handle daily tasks: Nightly build of our source code. Nightly packaging of our source code for anyone to have. Nightly packaging of the actual CVS for backup and retrieval purposes. Scripts are the primary means of communication with logging database.
16
Bit-String Chromosomes How do we represent a bit-string in memory? An array of integers whose values are restricted to 1 or 0 Waste of memory (1 bit = 4 bytes in memory), but very easy to work with A block of memory ie. A char to represent between one and 8 bits Saves on memory (1 bit = 1 bit in memory), but more difficult to work with How do we work with the individual bits in a block of memory? Bit-wise operators &, |, ^, >, assignment using ‘0xff’ hex notation Masks Bit sequences that are used to manipulate other bit sequences
17
Demo Bit-String Test Driver
18
Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.