Discretization of an area
I am using CQM to optimize the positioning of some Wind Turbines inside an assigned area. I am sure the code created is working correctly. because I can test it on some code given for a challenge. I noticed that increasing the number of nodes instead of improving the result worsen. I imputed this to the fact that doing this increases the space to be explored and hence the result yielded is sub-optimal. Obviously I increased the time parameters as high as some 60 sec. But no changes occurred. Does that mean that the time parameter must be increased a lot more? We are talking of some 150-300 variables (potential nodes).
Comments
Hello,
Thanks for reaching out with your questions.
Increasing the problem size might result in the solution growing exponentially, which means that the time-to-solution would also grow exponentially. What was the original problem size and what was it increased to? It might be the case that the time needs to be increased quite a bit more.
Please let us know how things progress and if you have any more questions.
Hello David and thanks for the prompt response.
I will attach some graphs to make it clear.
For this challenge the objective is the maximization of AEP (Annual Energy Production), positioning 25 Wind Turbines in an assigned, irregularly shaped, area. There is basically just aconstraint related to a minimum distance amongst each turbine to be satisfied.
Case A) n_nodes 38.
Solution found by CQM:
AEP= 900,112 MWh
Case B) fitter area n_nodes= 157
Solution found by CQM:
AEP = 858,8802 MWH
Hello,
It looks like you might not have increased the number of nodes? Both CQM graphs only have 25 nodes if I am not mistaken.
It looks like perhaps the constraint is satisfied, as it seems a minimum distance between nodes is being obeyed.
Was an objective function defined? Generally the objective function can be used to maximize/minimize the number of nodes included by biasing each node with a negative or positive value. You can see this in the Maximum Cut example.
Another constraint that comes to mind is one that limits the wind turbine positions to within the designated area.
Are you able to provide a minimal code example to illustrate how the original code ran and how the increase in nodes was introduced?
""It looks like you might not have increased the number of nodes? Both CQM graphs only have 25 nodes if I am not mistaken""
Nope: 25 is the fixed number of turbines whose displacement must be optimized. Number of nodes was increased from an initial attempt of 38 in case A to a second denser one of 157 for attempt B, The nodes are the potentials nodes (red crosses) among which the best 25 must be chosen.
"Another constraint that comes to mind is one that limits the wind turbine positions to within the designated area"
Yes obviously the area is given and the potential nodes must fall inside, but this is what is done. In the pics the nodes are all inside the assigned area.
"Was an objective function defined? Generally the objective function can be used to maximize/minimize the number of nodes"
Nope: as said the objective function to maximize is the AEP (not the number of Turbines which is a given).This is done strategically positioning the chosen Turbines in order not to influence one another with the so called wake effect.
I think I understand the problem better.
It sounds like you are anticipating seeing at least as good of an energy output as the 38 nodes, since the 157 nodes are a superset, correct?
How long did you run the problem for in each case?
The energy values for each node are pre-calculated using the AEP function?
Are you able to give minimal code examples that reproduce the behaviour, showing how the Ocean Tools code is being used?
Yes
The basic 5 secs for the 38 nodes.
As high as 60 secs for the 157 (then I stopped because I did not want to consume all the 20 minutes/month free allowance)
In fact the nitty gritty of my question is if it makes sense to increase the run time (like I hope) and how much longer of a time_limit might be.
Kinda: in fact there is just a quadratic term between each pair of nodes keeping into account the action exterted by one over the other, in terms of so-called wake effect (the reduction of power output of the turbine downwind between each pair).
In fact the code is published on my Github page as per the agreement with DWave in order to utilize the QC. There are last lines:
Hello,
Thank you for clarifying the problem submitted.
It seems that more time is needed, however it is difficult to give any estimate or guidance here other than that this is likely not enough time to run on a larger problem like this, given the exponential nature of the increased problem complexity.
I did take a look at the code you've uploaded to your GitHub but it looks like some pieces are missing and so is not runnable.
Options are limited on our end as to how much we are able to help look into this, but are you able to provide a minimal code example with a CQM for the 157 case that generates the above output?
Please sign in to leave a comment.