Solution Evaluation

The detailed description of the Challenge 2 Solution Evaluation is in Appendix D of the Problem Formulation.

Solution Evaluation Algorithm

  1. Check solution file format against the specification in Appendix C of the Problem Formulation. If a solution file is formatted incorrectly, then the solution is deemed infeasible and evaluation terminates.
  2. Read solution input variables xongk, xswek, xswfk, xsthak, xstfk, thetaik, qjk, pgk, qgk, and tjk from the solution files.
  3. Round integer input variables xsthak, xswek, xswfk, xstfk, and xongk to the nearest integer values.
  4. Check domains of integer input variables, i.e. Equations (42), (44), (45), (55) to (57) and (77). If any violation > 0 is found, then the solution is deemed infeasible and evaluation terminates.
  5. Compute generator start up and shut down variables xsugkand xsdgkfrom Equations (78) to (80).
  6. Check constraints on generator start up and shut down variables, i.e. Equations (85) to (88). If any violation > 0 is found, then the solution is deemed infeasible and evaluation terminates.
  7. Check simple bounds on continuous input variables vik and tjk, i.e. Equations (29), (30) and (37). If any violation > epsilon is found, or any tjk < 0, then the solution is deemed infeasible and evaluation terminates.
  8. Compute load real and reactive power consumption variables pikand qik from Equations (38) and (39).
  9. Check simple inequality constraints for load ramping, generator bounds, and generator ramping, i.e. Equations (40), (41) and (81) to (84). If any violation > epsilon is found, or any pgk < 0, then the solution is deemed infeasible and evaluation terminates.
  10. Compute switched shunt susceptance variables bcshk from Equation (43).
  11. Compute transformer tap ratio and phase shift variables taufkand thetafk from Equations (58) to (61).
  12. Compute transformer impedance correction variables etafkfrom Equations (66) and (67).
  13. Compute transformer series conductance and susceptance variables gfk and bfk from Equations (62) to (65).
  14. Compute line and transformer real and reactive power flow variables poek, pdek, qoek, qdek, pofk, pdfk, qofk, and qdfkfrom Equations (46) to (49) and (68) to (71).
  15. Compute minimal bus real and reactive power imbalance variables p+ik, p-ik, q+ik, and q-ik from Equations (31) to (36).
  16. Compute minimal line and transformer rating exceedance variables s+ek, and s+fk from Equations (50) to (54) and (72) to (76).
  17. Compute bus imbalance block variables p+ikn, p-ikn, q+ikn, q-ikn and minimal bus objective variables zik from Equations (3) to (12).
  18. Compute load block variables pjkn and minimal load objective variables zjkfrom Equations (13) to (16).
  19. Compute line rating exceedance block variables s+enk and maximal line objective variables zek from Equations (17) to (20).
  20. Compute transformer rating exceedance block variables s+fnk and maximal transformer objective variables zfk from Equations (21) to (24).
  21. Compute generator real power block variables pgnk and maximal generator objective variables zgk from Equations (25) to (28).
  22. Compute case objective variables zk from Equation (2).
  23. Compute total objective variable z from Equation (1).
  24. Return infeasibility indicator and total objective value z.

Numbers in parenthesis correspond to the appropriate equations in the Problem Formulation document.

If the solution is infeasible, set z = zinf.

Solution Evaluation Source Code

The python Solution Evaluation source code is available on GitHub: https://github.com/GOCompetition/C2DataUtilities

This code can be used as a template for reading the input files and to calculate zinf. It is also used to insure that the datasets are consistent with the problem formulation and have consistent formats. Most of the changes are related to insuring the datasets are consistent with the problem formulation.

The most recent commit was July 27, 2021. See the repo History (main) and History2 (utilities) for details of the changes.