/
readme.txt
executable file
·245 lines (167 loc) · 7.14 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
Content:
- Introduction
- Directory structure
- Dependencies
- Compile
- Execute
- Libraries
- Testing
- Implementation Guidelines
- LICENSE
Introduction
============
This is the base directory of the Fib project.
The Fib project consists of the following components:
- the Fib multimedia description language
- the genetic algorithm to encode and optimize of Fib objects
- the converters for converting to, from and between the Fib formats
Directory structure
===================
Documentation of the project:
docu/: directory containing the documentation for the Fib project
gpl/: directory containing the copyright texts, which are used for the project
Implementation of the Fib project:
*/incl/: directories for the header / declaration files
*/src/: directories for the source code files
*/test/: directories for the source files to test the implementation
*/testruns/: directories for scripts to run complete test runs for the subsystem
*/testruns/basicMemtest.sh: A test run to check for memory leaks in the system.
To execute this test run, ther have to be the LeakTracer program in the
directory "~/tools/LeakTracer/LeakCheck" by Erwin Andreasen and Henner
Zeller (http://www.andreasen.org/LeakTracer/)
fib/: root directory of the Fib multimedia description language
- here the files to generate the Fib library can be found
fib/incl/: directory for the header / declaration files of the Fib implementation
fib/src/: directory for source files of the Fib implementation
enviroment/: This directory contains the abstract version of the genetic
algorithm, on which the genetic algorithm for Fib is build
enviroment.fib/: This directory contains the genetic algorithm for Fib
fib.algorithms/: This directory contains algorithms for Fib objects;
with these Fib objects can be analyzed, edited and changed
TinyXML/: a utility library for reading xml data by Andrew Ellerton
add_ons/: root directory for additional programs of the Fib project
add_ons/converter/: programs to convert from, to and between the
Fib multimedia formats
add_ons/converter/FreeImage/: A support library for reading image data by
Herve Drolon.
other_packages /: other packages from outside vendors, which the
Fib project needs
*/version.h: the version files for each component;
in them you can find (among others) switches, with which various
features can be switched
*/makefile: makefile to generate the respective component (see section Compile)
Dependencies
============
fib/ depends on: tinyxml/; other_packages/zlib/
add_ons/converter/ depends on: fib/; fib.algorithms/; add_ons/converter/FreeImage/
add_ons/creator/ depends on: fib/
enviroment/ depends on: tinyxml/
enviroment.fib/ depends on: fib/; enviroment/; enviroment.fib/operators/;
tinyxml/
enviroment.fib/operators/ depends on: fib/; fib.algorithms/; enviroment.fib/
fib.algorithms/ depends on: fib/; tinyxml/
Compile
=======
The subsystems can be generated by calling make from the respective
subsystem folder. (e.g. ">cd add_ons/converter/; make test" to generate
the converter test programs)
Linux
-----
For generating the program system:
>make
For generating the test program system:
>make test
Windows
-------
(NOTE: The system was developed under Linux. So far it dos not work
completely under Windows.
Some subsystems may not work yet (e.g. enviroment/). )
The system can be generated using MinGW (www.mingw.org).
For generating the program system:
>make win
For generating the test program system:
>make win_test
Requirements
------------
In order to generate the system only the "g++" C++ compiler with the
Standard C library is required.
The g++ compiler can be installed via the package management system.
(Or, for example, on Ubuntu ">sudo aptitude install g++" on the
shell command line)
When make is executed before the installation of "g++":
>make clean
should be called to delete the dependency files.
Execute
=======
The Fib system contains various programs that can be executed.
The genetic algorithm
---------------------
The algorithm is used to generate Fib objects that represent a
multimedia object as well possible. For that the algorithm is
given a particular multimedia object, for which it generates new
Fib objects / individuals, of which good will be selected.
path: enviroment.fib/bin/
call: runEnviroment FILE_FIB_OBJECT FOLDER_OUTPUT [MAX_ITERATIONS]
parameters:
FILE_FIB_OBJECT
The path to the to load Fib multimedia data / object
FOLDER_OUTPUT
The path of the folder, where the evaluated best / result Fib objects
should be stored.
MAX_ITERATIONS (optional)
The maximal number of iterations / operations the environment
should perform.
converter
---------
There are currently three converter programs for Fib:
- for converting image data into the Fib format: convertToFib
- for converting image data in Fib into another image format: convertFromFib
- to convert objects in a Fib format to the other Fib format: convertFibToFib
Libraries
=========
Fib language elements
---------------------
In the subdirectory "fib/lib/" with "make" a library with classes for the
Fib elements will be generated. With objects of these classes Fib objects
can be created and it can be worked on these Fib objects.
These form the basis of the Fib system.
Fib-algorithms
--------------
In the subdirectory "fib/fib.algorithms/lib/" with "make" a library of
algorithms (and classes) for the Fib system will be crated.
These algorithms provide various functionality about the Fib system.
The source code for these algorithms can be found in the subdirectories of
the "fib.algorithms/" directory.
General genetic algorithm
-------------------------
In the subdirectory "enviroment/lib/" with "make" a library will be created,
with the classes for the basic genetic algorithm.
On this basic genetic algorithm the genetic algorithm for Fib
(enviroment.fib/) is build.
Testing
=======
For most components of the Fib systems automatic tests are available.
The individual test runs are respectively located in the "testcase/" directories.
In the "testruns/" directories are combined test, that execute the mostly
all the test runs that are available in the directory "testcase/".
Implementation guidelines
=========================
- The code should be written understandable and clean.
- The code is comment with doxygen in the Java style so that an automatic
documentation can be created for it.
- For all aspects (methods, functions, ...) of the Fib program system
automatic test routines should be created and automatic test runs (see
"*/testruns/) should be build.
- All resources that are not part of standard C++ system and are needed by
the Fib program system, are delivered with the system.
- The implementation should be compilable and running on both Linux and Windows.
However, Linux is the main implementation system. For the automated test
runs, it is enough if they only run on Linux.
- The implementation should compile and run without any extra costs (e. g.
licenses).
LICENSE
=======
Fib multimedia library: LESSER GENERAL PUBLIC LICENSE 3.0
Remaining parts of the program system: GNU GENERAL PUBLIC LICENSE 3.0
Documentation: GNU Free Documentation License 1.2
A copy of the GNU LICENSE can be found in the subdirectory "gpl/".