Калькулятор симплекс-метода: реализация и пример кода для линейного программирования

Если вы ищете калькулятор симплексного метода, он обычно относится к математическому алгоритму, используемому для решения задач линейного программирования. Симплексный метод – это широко используемый метод оптимизации, который итеративно улучшает решение, пока не будет достигнуто оптимальное решение.

Вот пример реализации симплексного метода в Python:

import numpy as np
def simplex_method(c, A, b):
    m, n = A.shape
    c = np.array(c)
    A = np.array(A)
    b = np.array(b)
    # Create the initial tableau
    tableau = np.zeros((m + 1, n + m + 1))
    tableau[:-1, :-1] = np.hstack((A, np.eye(m)))
    tableau[:-1, -1] = b
    tableau[-1, :-1] = -c
    while np.any(tableau[-1, :-1] < 0):
        pivot_col = np.argmin(tableau[-1, :-1])
        pivot_row = np.argmin(tableau[:-1, -1] / tableau[:-1, pivot_col])
        tableau[pivot_row, :] /= tableau[pivot_row, pivot_col]
        for i in range(m + 1):
            if i != pivot_row:
                tableau[i, :] -= tableau[i, pivot_col] * tableau[pivot_row, :]
    objective_value = tableau[-1, -1]
    solution = tableau[:-1, -1]
    return objective_value, solution
# Example usage
c = [4, 3]  # Objective function coefficients
A = [[2, 1], [-1, 2]]  # Coefficients of inequality constraints
b = [8, 4]  # Right-hand side values of inequality constraints
objective_value, solution = simplex_method(c, A, b)
print("Objective value:", objective_value)
print("Solution:", solution)

Это базовая реализация симплексного метода, в которой целевая функция должна быть максимизирована с учетом ограничений неравенства. В примере решается задача линейного программирования с двумя переменными и двумя ограничениями.