My project is to optimize wind turbine placement in a given area. In
order to do this, I'm using both a wind simulation program (openWind:
awsopenwind.org) and the a genetic algorithm code base (Evolving
Objects: eodev.sourceforge.net).
The process should work like this:
openWind will randomly place wind turbines in its simulated
environment and I will copy the coordinates of these turbines into the
evolving objects program. A wind farm of 20 turbine placements will
constitute an individual, and perhaps 500 or 1000 individuals will
constitute the population.
EO will perform the mutation, crossover, and selection procedures on
the population and output the resulting population as a list of
coordinate pairs for each individual. I will then transfer (copy and
paste unless the process can be easily automated) the coordinates for
the wind turbines into openWind, which will calculate how much energy
each wind farm can produce. Each production figure will then be transferred into
EO as a fitness value for the corresponding wind farm. I'll repeat
this process x amount of times unless someone finds an easy way to
automate it.
The aspects preventing the completion of this process are EO's ability
to display population data and to accept fitness values rather than
calculate them itself.
I'm not sure how to approach the problem from here.
Are you looking to hire someone to write code, or are you trying to write it yourself? Do you have code written already and need it looked over? Do you need help on how to code?
Basically you want a interface between openWind <---> EO correct ?
Based on your post, input from EO feed to openWind. Then output from openWind feed back to EO. This to and fro process need to be automated correct ?
To automate this process will depend a lot on both openWind and EO. I presume they are ready-to-use software. Do these software provide scripting features or expose some API to interface with their software internals? If both are not provided then there is not much you can do isn't it ?
Some software do not expose API aka libraries for use but they allow input in the form of some pre-defined format text file. Then you can use some simple scripts to call them.
E.g
openWind <file>
EO <file>
You can then pipe them together like EO <file> | openWind -
If API is provided you need to know it is in which language and then your application acting as a bridge most likely should be same language e.g EO <---> your written program <---> openWind
To interface between EO and openWind depend a lot of these two software features. As posted, you need to check do they provide API. Do they provide some command line option where input can be in a text file format so we can use scripts to call and chain them together.
It might be easier to replace openWind's optimizer code with the genetic algorithm directly rather than to interface the two programs. The only difficulty there would be compiling the openWind code and finding the optimizer instructions within it.