Created parseLP.ts (markdown)
+266
@@ -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.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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);
|
||||||
|
}
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user