forked from MOEAFramework/MOEAFramework
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
78 lines (61 loc) · 3.67 KB
/
TODO
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
Here are some ways to contribute to the MOEA Framework. We ask that all
contributions are licensed under the GNU Lesser General Public License and
are complete with any necessary documentation, tests and data files.
These tasks are organized by their level of difficulty. Easy tasks provide an
excellent starting point for beginners and should require only a few hours of
development effort. More difficult tasks may take days or weeks of development
effort, and may require interaction with other contributors to plan and discuss
any changes.
------
Easy
------
- Need to make PSO algorithms resumable.
- Look into the JMetal algorithms dMPOSO, ssNSGAII, SMPSOhv.
- EncodingUtils should support extracting the codon array from Grammars
- Upgrade to JMetal 4.4. The latest JMetal source is currently missing the
IConstraintViolationComparator interface and can not be compiled.
- Need to determine for which classes does value-based equals methods make
sense, and provide equals and hashCode implementations for these classes.
As an example, it doesn't make sense for Solution to provide an equals
method since there are many possible interpretations of equality. Are two
solutions equal if they share the same objective values regardless of their
decision variables? Consequently, equals methods don't make sense for
Populations. However, a helper class that provides various methods of
comparison between solutions and populations would be useful. For
consistency, use the Apache Commons Lang builder classes to implement
equals and hashCode.
- Scan the source code for errors, exceptions and warnings which are not
documented in the HELP file.
- Identify public facing API methods and functions which are not protected
against invalid inputs, such as null or out-of-bounds values. Ideally,
an invalid input which would cause an error should be detected as soon as
possible in order to provide meaningful feedback to developers (i.e.,
identify and report a null pointer ASAP rather than wait until dereferenced
by internal code.
--------
Medium
--------
- The MOEA Framework is primarily a single-threaded library, and currently
only supports multithreaded evaluation of problems. This limitation is
caused by: 1) shared instances which are not thread safe, such as PRNG;
and 2) the current requirement for reproducibility, which is affected if
PRNG is accessed by multiple concurrent threads. Identify any other
limiting factors that would hinder modifying the code to support
multi-threaded execution. Write a report detailing the necessary changes,
but do NOT implement any changes.
- The MOEA Framework is currently standardized for minimization problems,
requiring any maximized objectives to be converted to minimization
objectives (i.e., through negation). This has several advantages, such as
standardizing the file representation. While a more flexible approach
would allow the problem to define both minimization and maximization
objectives, this may impact codes which only work on minimized objectives.
Write a report detailing the necessary changes, but do NOT implement any
changes.
------
Hard
------
- Develop a GUI that simplifies the use of the framework, allowing users to
quickly design, run and view the results of experiments. This should
support high-dimensional (3D) visualization of Pareto sets, detailed
runtime and end-of-run performance analysis, a code editor for defining new
problems in one of the supported scripting languages, etc.