From 1e298e8e4cab27d85b620a9a2d81a7411d9a3bb7 Mon Sep 17 00:00:00 2001 From: bRNS98 <82089915+bRNS98@users.noreply.github.com> Date: Fri, 11 Oct 2024 23:22:51 +0200 Subject: [PATCH] Created parseLP.ts (markdown) --- parseLP.ts.md | 266 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 266 insertions(+) create mode 100644 parseLP.ts.md diff --git a/parseLP.ts.md b/parseLP.ts.md new file mode 100644 index 0000000..a4d18aa --- /dev/null +++ b/parseLP.ts.md @@ -0,0 +1,266 @@ +# Documentation for `parseLP.ts` + +This document provides a comprehensive overview of the TypeScript file `parseLP.ts` which contains the type definitions and functions used for handling Linear Programming (LP) problems. **Linear Programming** is a method to achieve the best outcome in a mathematical model whose requirements are represented by linear relationships. + +--- + +## Index + +1. [Overview](#overview) +2. [Type Definitions](#type-definitions) + - [VariableLP](#variablelp) + - [ConstraintLP](#constraintlp) + - [ProblemLP](#problemlp) +3. [Functions](#functions) + - [createProblemLP](#createproblemlp) + - [parseLP](#parselp) + +--- + +## Overview + +The `parseLP.ts` file is designed to define the structure of an LP problem and create instances of LP problems. It also includes a placeholder for a function to parse LP problem descriptions from a string input. + +## Type Definitions + +### `VariableLP` + +This type is used to define a variable in a linear programming problem. + +- **Attributes:** + - `name: string` - Represents the name of the variable. + - `coef: number` - Represents the coefficient of the variable in the objective function or constraints. + +```typescript +type VariableLP = { + name: string; + coef: number; +}; +``` + +### `ConstraintLP` + +This type represents a constraint in a linear programming problem. + +- **Attributes:** + - `name: string` - The name of the constraint. + - `vars: VariableLP[]` - An array of `VariableLP` representing the variables involved in this constraint. + - `bnds: { ub: number; lb: number }` - An object representing the bounds for the constraint. + - `ub: number` - Upper bound of the constraint. + - `lb: number` - Lower bound of the constraint. + +```typescript +type ConstraintLP = { + name: string; + vars: VariableLP[]; + bnds: { + ub: number; + lb: number; + }; +}; +``` + +### `ProblemLP` + +This interface represents an LP problem as a whole. + +- **Attributes:** + - `objective: { vars: VariableLP[]; }` - An object containing an array of `VariableLP` for the objective function. + - `constraints: ConstraintLP[]` - An array of `ConstraintLP`, representing the constraints of the LP problem. + +```typescript# Documentation for `parseLP.ts` + +This document provides a comprehensive overview of the TypeScript file `parseLP.ts` which contains the type definitions and functions used for handling Linear Programming (LP) problems. **Linear Programming** is a method to achieve the best outcome in a mathematical model whose requirements are represented by linear relationships. + +--- + +## Index + +1. [Overview](#overview) +2. [Type Definitions](#type-definitions) + - [VariableLP](#variablelp) + - [ConstraintLP](#constraintlp) + - [ProblemLP](#problemlp) +3. [Functions](#functions) + - [createProblemLP](#createproblemlp) + - [parseLP](#parselp) +4. [Conclusion](#conclusion) + +--- + +## Overview + +The `parseLP.ts` file is designed to define the structure of an LP problem and create instances of LP problems. It also includes a placeholder for a function to parse LP problem descriptions from a string input. + +## Type Definitions + +### `VariableLP` + +This type is used to define a variable in a linear programming problem. + +- **Attributes:** + - `name: string` - Represents the name of the variable. + - `coef: number` - Represents the coefficient of the variable in the objective function or constraints. + +```typescript +type VariableLP = { + name: string; + coef: number; +}; +``` + +### `ConstraintLP` + +This type represents a constraint in a linear programming problem. + +- **Attributes:** + - `name: string` - The name of the constraint. + - `vars: VariableLP[]` - An array of `VariableLP` representing the variables involved in this constraint. + - `bnds: { ub: number; lb: number }` - An object representing the bounds for the constraint. + - `ub: number` - Upper bound of the constraint. + - `lb: number` - Lower bound of the constraint. + +```typescript +type ConstraintLP = { + name: string; + vars: VariableLP[]; + bnds: { + ub: number; + lb: number; + }; +}; +``` + +### `ProblemLP` + +This interface represents an LP problem as a whole. + +- **Attributes:** + - `objective: { vars: VariableLP[]; }` - An object containing an array of `VariableLP` for the objective function. + - `constraints: ConstraintLP[]` - An array of `ConstraintLP`, representing the constraints of the LP problem. + +```typescript +interface ProblemLP { + objective: { + vars: VariableLP[]; + }; + constraints: ConstraintLP[]; +} +``` + +## Functions + +### `createProblemLP` + +This function is responsible for creating a `ProblemLP` from the provided objective variables and constraints. + +- **Parameters:** + - `objectiveVars: VariableLP[]` - An array of variables for the objective function. + - `constraints: { name: string; vars: VariableLP[]; ub: number; lb: number }[]` - An array of objects representing constraints. + +- **Returns:** + - `ProblemLP` - An object that represents the linear programming problem. + +- **Functionality:** + - The function maps input constraints into the `ConstraintLP` format. + - It then constructs an `LP` problem combining the formatted constraints and objective variables. + +```typescript +function createProblemLP( + objectiveVars: VariableLP[], + constraints: { name: string; vars: VariableLP[]; ub: number; lb: number }[] +): ProblemLP { + const constraintsFormatted: ConstraintLP[] = constraints.map((constraint) => ({ + name: constraint.name, + vars: constraint.vars, + bnds: { ub: constraint.ub, lb: constraint.lb } + })); + + const problem: ProblemLP = { + objective: { vars: objectiveVars }, + constraints: constraintsFormatted + }; + + return problem; +} +``` + +### `parseLP` + +The `parseLP` function is a placeholder meant to parse a linear programming problem from a string input. + +- **Parameters:** + - `input: string` - The string representation of an LP problem. + +- **Functionality:** + - Currently, it logs the input string to the console with a message indicating that an LP file is being parsed. + +```typescript +export function parseLP(input: string) { + console.log("Parsing LP file:", input); +} +``` + +## Conclusion + +The `parseLP.ts` file provides a structured approach to defining and creating linear programming problems in TypeScript. By defining specific types and a function for problem creation, it lays the groundwork for handling LP models efficiently. The `parseLP` function is set to be developed further to enable parsing from string inputs, enhancing its utility. +interface ProblemLP { + objective: { + vars: VariableLP[]; + }; + constraints: ConstraintLP[]; +} +``` + +## Functions + +### `createProblemLP` + +This function is responsible for creating a `ProblemLP` from the provided objective variables and constraints. + +- **Parameters:** + - `objectiveVars: VariableLP[]` - An array of variables for the objective function. + - `constraints: { name: string; vars: VariableLP[]; ub: number; lb: number }[]` - An array of objects representing constraints. + +- **Returns:** + - `ProblemLP` - An object that represents the linear programming problem. + +- **Functionality:** + - The function maps input constraints into the `ConstraintLP` format. + - It then constructs an `LP` problem combining the formatted constraints and objective variables. + +```typescript +function createProblemLP( + objectiveVars: VariableLP[], + constraints: { name: string; vars: VariableLP[]; ub: number; lb: number }[] +): ProblemLP { + const constraintsFormatted: ConstraintLP[] = constraints.map((constraint) => ({ + name: constraint.name, + vars: constraint.vars, + bnds: { ub: constraint.ub, lb: constraint.lb } + })); + + const problem: ProblemLP = { + objective: { vars: objectiveVars }, + constraints: constraintsFormatted + }; + + return problem; +} +``` + +### `parseLP` + +The `parseLP` function is a placeholder meant to parse a linear programming problem from a string input. + +- **Parameters:** + - `input: string` - The string representation of an LP problem. + +- **Functionality:** + - Currently, it logs the input string to the console with a message indicating that an LP file is being parsed. + +```typescript +export function parseLP(input: string) { + console.log("Parsing LP file:", input); +} +``` \ No newline at end of file