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

Improving search for optimal CapacityIndicatorVector #3414

Conversation

MatNif
Copy link
Collaborator

@MatNif MatNif commented Oct 26, 2023

Update in the mutation and recombination operations for capacity indicator vectors (i.e. vectors defining the structure of supply systems) to improve the search of optimal supply systems.

Before this change, there were cases where components were installed but remained unused (e.g. boilers were installed to provide heat for absorption chillers, but no fossil fuels were used to operate the boilers, since the absorption chillers were never activated).

To test this it is likely better to take a DC case, as this type of behaviour was more easily observable in cooling supply systems.

MatNif and others added 23 commits August 22, 2023 15:32
Remember optimal supply system capacities from one generation of the network optimisation to the next.
Removing the minimum bound and introducing a maximum oversizing percentage for the supply system optimisation.
This fixes a substantial error in the code, where network cost was not added to the overall cost of a district energy system.
Set the number of generations the optimization algorithm runs on the supply systems to either 5 or sqrt(NGen) depending on which is larger. NGen stands for the number of generations that are undergone in the networks portion of the algorithm.
This change prevents supply systems from being able to generate excess energy at a profit.
Introduce an upper limit for the attempts at creating individuals in the initial population of capacity indicator vectors.
…into 3347-mismatch-between-usage-of-fossil-fuels-and-installed-components
Accelerate the code portion, keeping track of the best capacity indicator vectors (i.e. supply system structures) across generations of connectivity vectors (i.e. network structures).
…ed-components' of https://github.com/architecture-building-systems/CityEnergyAnalyst into 3347-mismatch-between-usage-of-fossil-fuels-and-installed-components
Adding comments explaining why the if-break statement is needed.
@MatNif MatNif self-assigned this Oct 26, 2023
@MatNif MatNif linked an issue Oct 26, 2023 that may be closed by this pull request
MatNif and others added 4 commits October 27, 2023 22:28
…tiprocessing

During multiprocessing, given the same `connectivity_id` and `identifier`, the simulation would attempt to write to the same file location. This would eventually cause a EPANET 200 error code, when it is trying to access the file.
In some instances, the initial population contains individuals. They are kept in the population to not distort the genetic algorithms' recombination operation. If the specific supplySystemStructure makes it hard to find valid individuals, some initial invalid individuals might stay in the population until the end. These changes ensure that none of these individuals are kept in the final selection.
Handle cases where objective function values happen to be zero (e.g. no anthropogenic heat emitted - i.e specific "zero-loss" heating cases)
This handles an edge-case where multiple identical CapacityIndicatorVectors (CIVs) are created in the initial population of the supply systems optimisation, and these CIVs make it through to the final selection. This removes this type of duplicates.
When no valid networks are found in an iteration of the supply systems optimisation the tracker (tracking optimal networks) would not be able store anything and run into an error. This changes fixes this edge-case.
correct naming of a variable that used to serve for tertiary components only but is now applicable to all active components
Remove buildings from the considered system if they have no demand.
@ShiZhongming ShiZhongming merged commit 0c483f4 into master Nov 23, 2023
3 checks passed
@ShiZhongming ShiZhongming deleted the 3347-mismatch-between-usage-of-fossil-fuels-and-installed-components branch November 23, 2023 10:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Mismatch between usage of fossil fuels and installed components
3 participants