Introduction ============ .. _sec-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 :cite:`RAVEN,RAVENtheoryMan` 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: - https://github.com/idaholab/LOGOS 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 .. code-block:: bash git clone https://github.com/idaholab/LOGOS.git or .. code-block:: bash 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. .. code-block:: bash path/to/LOGOS/build.sh --install --conda-defs path/to/miniconda3/etc/profile.d/conda.sh - *Activate LOGOS Libraries* .. code-block:: bash source activate LOGOS_libraries - *Test LOGOS* .. code-block:: bash python run_tests.py Alternatively, the :code:`logos` script contained in the :code:`LOGOS` folder can be used directly: .. code-block:: bash path/to/LOGOS/logos -i -o - *For use as a RAVEN Plugin* RAVEN must first be downloaded from - https://github.com/idaholab/raven.git Detailed instructions are available from - https://github.com/idaholab/raven/wiki To register a plugin with RAVEN and make its components accessible, run the script: .. code-block:: bash raven/scripts/install_plugins.py -s /abs/path/to/LOGOS After plugin registration, follow the installation instructions at - https://github.com/idaholab/raven/wiki/installationMain 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** .. code-block:: python class AClass(): def aMethodImplementation(self): pass - **LOGOS XML input example** .. code-block:: xml ... body ... - **Bash commands** .. code-block:: bash 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: - https://www.w3schools.com/xml/default.asp The main input blocks are as follows: - :xmlNode:`Logos` The root node containing the entire input; all subsequent blocks must be defined inside the :xmlNode:`Logos` block. - :xmlNode:`Settings` Specifies the calculation settings (i.e., options for optimization solvers, options for constraints, and working directory). - :xmlNode:`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 :xmlNode:`Sets` are treated as strings. - :xmlNode:`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. - :xmlNode:`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. - :xmlNode:`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 :ref:`sec-ModelingComponents`) - Deterministic capital budgeting (see :ref:`sec-DeterministicCapitalBudgeting`) - Prioritizing project selection to hedge against uncertainty (see :ref:`sec-StochasticCapitalBudgeting`) - Distributionally robust optimization (see :ref:`sec-DROCapitalBudgeting`) - Risk-based stochastic capital budgeting using conditional Value-at-Risk (CVaR) (see :ref:`sec-CVaR`) - Plugin for the RAVEN code (see :ref:`sec-RavenPlugin`) - SSC cashflow and NPV models (see :ref:`sec-SSCNPV`) Related Publications -------------------- - Mandelli, D., C. Wang, M. Abdo, K. Vedros, J. Cogliati, J. Farber, A. Al Rashdan, et al. *Industry Use Cases for Risk-Informed System Health and Asset Management.* (2021). - Wang, Congjian, Diego Mandelli, Shawn St Germain, Curtis Smith, David Morton, Ivilina Popova, and Stephen Hess. *Stochastic optimization for long term capital structures, systems, and components refurbishment and replacement.* In **ASME Power Conference**, vol. 83747, p. V001T06A001. American Society of Mechanical Engineers, 2020. - Wang, Congjian, Diego Mandelli, Ivilina Popova, Stephen Hess, Shawn W. St Germain, and Curtis L. Smith. *Stochastic analysis for long term capital structures, systems, and components refurbishment and replacement.* No. INL/CON-20-57013-Rev001. Idaho National Laboratory (INL), Idaho Falls, ID (United States), 2020.