-
Notifications
You must be signed in to change notification settings - Fork 59
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
Merged
ShiZhongming
merged 34 commits into
master
from
3347-mismatch-between-usage-of-fossil-fuels-and-installed-components
Nov 23, 2023
Merged
Improving search for optimal CapacityIndicatorVector #3414
ShiZhongming
merged 34 commits into
master
from
3347-mismatch-between-usage-of-fossil-fuels-and-installed-components
Nov 23, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
…s-and-installed-components
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.
…s-and-installed-components
Introduce an upper limit for the attempts at creating individuals in the initial population of capacity indicator vectors.
…s-and-installed-components
…s-and-installed-components
…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).
…s-and-installed-components
…s-and-installed-components
…s-and-installed-components
…s-and-installed-components
…s-and-installed-components
…ed-components' of https://github.com/architecture-building-systems/CityEnergyAnalyst into 3347-mismatch-between-usage-of-fossil-fuels-and-installed-components
…s-and-installed-components
Adding comments explaining why the if-break statement is needed.
…s-and-installed-components
…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.
…s-and-installed-components
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
approved these changes
Nov 23, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.