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.py
    

    Alternatively, the logos script contained in the LOGOS folder 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: