Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

define constraints #104

Open
piaulous opened this issue Jun 28, 2021 · 3 comments
Open

define constraints #104

piaulous opened this issue Jun 28, 2021 · 3 comments
Labels
question Further information is requested

Comments

@piaulous
Copy link

I’m looking/asking for a possibility to define constraints on my own for a CVRP.
The constraints could look like that:

  • a ring should not exceed a max. total length
  • the cumulative node demand of a ring divided by a constant should not exceed a certain value
  • the value (calculated from constant values, node load and distances to neighbor nodes) of a node should not deceed/exceed a certain limit

This should continuously be verified in each iteration, until a ring fitting to the constraints has been found.

Thanks in advance!

@Kuifje02
Copy link
Owner

I’m looking/asking for a possibility to define constraints on my own for a CVRP.
The constraints could look like that:

  • a ring should not exceed a max. total length

This is a resource constraint similar to the "max duration" constraint. Setting the max_duration to the max total length (and using the appropriate time matrix) should do the trick.

  • the cumulative node demand of a ring divided by a constant C should not exceed a certain value B

I think this is just another way of enforcing classical capacity constraints. Instead of having Sum(q(i),i=1..,n) <= Q, you want
Sum(q(i),i=1..,n)/C <= B. So setting the max capacity to B x C should do the trick.

  • the value (calculated from constant values, node load and distances to neighbor nodes) of a node should not deceed/exceed a certain limit

I am not sure I understand this one. Could you be more specific ? Which value of a node should not exceed a limit ?

@Kuifje02 Kuifje02 added the question Further information is requested label Jun 30, 2021
@piaulous
Copy link
Author

piaulous commented Jul 1, 2021

I guess I have to go more into depth. I’m trying to use vrpy to model an electrical grid ring topology, which requires to also check if the generated rings satisfy technical constraints in every iteration. Before checking the constraints every ring has to be divided into two half rings. The ring is separated at the position between two nodes where the conveyed load flow is minimal. For this calculation just the node demands are needed.

Now the constraints have to be satisfied:

Distance constraint: The half ring length should not exceed max. allowed distance. Cumulative edge length (costs) is the half ring distance.

Current rating constraint: The current rating is calculated as cumulative demand of the half rings divided by a constant voltage [kW/V] = [A]. The current rating is constrained as well (upper limit).

Voltage stability constraint: Here the voltage change between two consecutive nodes is determined. This calculation is little bit more complex, but needs the distance between a node pair and the node demand. Voltage stability is computed for rings and half rings and has a upper and lower limit.

Your suggestions from above would perfectly work for a whole ring, but my bad I haven't mentioned the half ring splittage. Do you have an idea how to implement this?

@Kuifje02
Copy link
Owner

Hmmm, sounds tricky. I am not sure if this is possible, as it requires checking cumulative resources on partial paths.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants