How to start

These instructions provide initial guidance for anyone, who wishes to participate in project. The project does not require any entry knowledge, just enthusiasm and willingness to learn. Programming skills are NOT necessary.

  • Download GANet starter kit here. FIXME
  • This kit contains a commented source code that applies genetic algorithms on a problem of maximizing performance demands of HTTP requests. More details can be found in Scenario 1 - HTTP requests
  • The code that is provided with the kit is very inefficient and contains many errors. Get familiar with the code, try different settings and observe the results. Settings that are good candidates for playing:
    • Thresholds (e.g., PACKETS_TO_SEND, MUTPB, CXPB, NGEN).
    • Metrics (e.g., CPU utilization, RAM utilization, bandwidth). See what counters are available to perfmon/logmon tools in Windows OS. Are there other focused alternatives?
    • Mutation and mating functions (see deap evolutionary tools).
    • Operating system. Try to design and implement a solution for virtual machine running Linux.
  • Think of ways how both the code and entire testing process could be improved. Some areas of possible improvements are:
    • Reducing time needed to evaluate each individual.
    • Improving overall performance by introducing parallelism, both on one host and multiple hosts.
  • If the project seems interesting to you after getting familiar with the basics, you should contact core project members (Petr Švenda, Radim Ošťádal and Vít Bukač) and arrange a meeting.
  • During the meeting, project members will be interested mainly in your:
    • Motivation - Why do you want to work on this project?
    • Time allowance - How much time do you want to devote to this project?
    • Skills - What skills do you want to improve? What skills you think could be beneficial to the project? (NOTE: No entry level skills are needed. The project is also about learning, not just getting results.)
  • If you already have ideas what parts of project are appealing to you (e.g., implementation, results analysis, distributed computing, central management, problem specification), mention it during the meeting. Also, bring any notes and ideas you made during the basic learning.
  • During the meeting the core project members will cooperate with you to identify what parts of the project would suit you the most.
  • Any participation is highly individual. Some participants may finalize their involvement with bachelor or master thesis, others may just be satisfied that they are working on an engaging research.