Challenge Overview

Challenge Overview

Welcome to the Plan Optimizer Microservice API Design Challenge

Our goal is to design the appropriate API for the plan optimizer and provide an easy to use workflow for managing data sets.

 

Background

We have a CLI tool called Plan Optimizer that is used for optimizing well trajectory based on various inputs. We can input well parameters and optimization constraints from the input file into CLI tool and has two modes of operation:

  • Calculation - calculate all the possible combinations(These can run into several possible combinations) for well trajectory based on the user choices 

  • Optimization - Out of the several, find the optimal well plan(Based on the criteria)

Finally, the tool writes all the results to the output file 

This project has a few goals:

  1. Improve the performance of the tool by improving the Code- improve the runtime speed for optimization

  2. Expose the optimization tool as a microservice

Currently,Optimization mode supports several different optimization criterias:

  1. Torque and drag minimization

  2. Time and cost minimization

  3. Collision avoidance (ie anticollision)

  4. Minimum well plan depth value

 

Optimization tool is developed in C++ with a custom simulated annealing implementation.

Task Details

Focus of this challenge is on designing the api for Plan Optimizer microservice. 

Service will support both operation modes of the cli tool (optimization and calculation). CLI tool takes two sets of inputs:

  • Xml file that describes a well (exact format name is EDM)

  • Optimization options

EDM files can be relatively large, in the range of 100KB-50MB, so the microservice should support uploading the edm dataset and then using it multiple times for optimization with different options.

 

Optimization options should be passed as in json format, and the results should also be returned as json. It is up to you to determine the exact inputs and results format - you will need to determine that from the CLI tool (optimization options are defined in PlanOpt.h)

 

Authentication/authorization is not in scope.

 

Submit a swagger specification for the microservice and an ER diagram for database that will store the edm data (assume we will be using PosgreSQL).



Final Submission Guidelines

See above

ELIGIBLE EVENTS:

2021 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30159604