Introduction
Industry equipment reliability (ER) and asset management (AM) programs are essential elements that help ensure the safe and economical operation of nuclear power plants (NPPs). The effectiveness of these programs is addressed in several industry-developed and regulatory programs. However, these programs have proven labor-intensive and expensive. There is an opportunity to significantly enhance the collection, analysis, and use of this information in order to provide more cost-effective plant operation.
LOGOS provides computational capabilities to optimize plant resources, such as maintenance optimization (ER application) and optimal component replacement schedules (AM application), by using state-of-the-art discrete optimization methods.
LOGOS is a software package and RAVEN [1, 2] plugin that contains a set of discrete optimization models designed to solve capital budgeting optimization problems by integrating economic and reliability data into the analysis framework. More specifically, given system, structure and component (SSC) health (e.g., failure rate or probability), O&M costs, replacement costs, and cost associated with component failure and budget constraints, LOGOS provides the optimal set of projects (e.g., SSC replacement) to maximize profit and satisfy the provided reliability requirements.
The aforementioned input data can be either deterministic or stochastic in nature (i.e., they can be point values or probability distribution functions). In the latter case, several scenarios are generated by sampling the provided distributions.
The developed models are based on different versions of the knapsack optimization problem. Two main classes of optimization models were initially developed: deterministic and stochastic. Stochastic optimization models evolve deterministic models by explicitly considering data uncertainties associated with constraints or item cost and reward. In FY-20, we moved forward by implementing two schedule optimization methods. The first one reformulates the capital budgeting problem in a distributionally robust form, which allows the user to rely on data directly rather than proposing a distribution from the data itself. The second one reformulates the capital budgeting explicitly using risk measures as quantities to be maximized or minimized.
These models can be employed as stand-alone models or interfaced with the INL-developed RAVEN code to propagate data uncertainties and analyze the generated data (e.g., sensitivity analysis).
Acquiring and Installing LOGOS
LOGOS is supported on three separate computing platforms: Linux, macOS (OSX, Apple Macintosh), and Microsoft Windows. Currently, LOGOS can be downloaded from the LOGOS GitHub repository:
New users should contact LOGOS developers to get started with LOGOS. This typically involves the following steps:
Install Miniconda you can install Miniconda from https://conda.io/miniconda.html
Download LOGOS You can download the source code for LOGOS from https://github.com/idaholab/LOGOS
git clone https://github.com/idaholab/LOGOS.git
or
git clone git@github.com:idaholab/LOGOS.git
Install LOGOS dependencies Identify your conda location, and provide the correct path of miniconda3/etc/profile.d/conda.sh to –conda-defs.
path/to/LOGOS/build.sh --install --conda-defs path/to/miniconda3/etc/profile.d/conda.sh
Activate LOGOS Libraries
source activate LOGOS_libraries
Test LOGOS
python run_tests.pyAlternatively, the
logosscript contained in theLOGOSfolder can be used directly:path/to/LOGOS/logos -i <inputFile.xml> -o <outputFile.csv>
For use as a RAVEN Plugin RAVEN must first be downloaded from
Detailed instructions are available from
To register a plugin with RAVEN and make its components accessible, run the script:
raven/scripts/install_plugins.py -s /abs/path/to/LOGOS
After plugin registration, follow the installation instructions at
to install the required dependencies.
User Manual Formats
In this manual, we employ the following formats to highlight specific elements with particular meanings (i.e., input structure, examples, and terminal commands):
Python coding
class AClass(): def aMethodImplementation(self): pass
LOGOS XML input example
<MainXMLBlock> ... <aXMLnode anAttribute="aValue"> <aSubNode>body</aSubNode> </aXMLnode> <!-- This is a commented block --> ... </MainXMLBlock>
Bash commands
cd path/to/LOGOS/ ./build.sh --install cd ../../
Components of LOGOS
In LOGOS, eXtensible Markup Language (XML) format is used to create the input file. For more information about XML, see the tutorial at:
The main input blocks are as follows:
<Logos>The root node containing the entire input; all subsequent blocks must be defined inside the<Logos>block.<Settings>Specifies the calculation settings (i.e., options for optimization solvers, options for constraints, and working directory).<Sets>Specifies a collection of data, possibly including numeric data (e.g., real or integer values) as well as symbolic data (e.g., strings), typically used to specify valid indices for indexed components.Note
Numeric data provided in
<Sets>are treated as strings.<Parameters>Specifies a collection of parameters, which are numerical values used to formulate constraints and objectives in an optimization model. A parameter can denote a single value, an array of values, or a multi-dimensional array of values.<Uncertainties>Specifies a collection of scenarios, which are numerical values used to simulate variations within parameters. A scenario block should follow the same structure and indexing as the corresponding parameter.<ExternalConstraints>Specifies a collection of external constraints, which are Python functions used to add additional constraints to the current optimization problem.
Each of these components is explained in dedicated sections of this user manual.
Capabilities of LOGOS
This document provides a detailed description of LOGOS. The features currently included in LOGOS are:
Overview of modeling components (see Overview of Capital Budgeting Modeling Components)
Deterministic capital budgeting (see Deterministic Capital Budgeting)
Prioritizing project selection to hedge against uncertainty (see Prioritizing Project Selection to Hedge Against Uncertainty)
Distributionally robust optimization (see Distributionally Robust Optimization)
Risk-based stochastic capital budgeting using conditional Value-at-Risk (CVaR) (see Risk-Based Stochastic Capital Budgeting using Conditional Value-at-Risk)
Plugin for the RAVEN code (see Plugin for the RAVEN Code)
SSC cashflow and NPV models (see SSC Cashflow and NPV Models)