From d9ff4235f7da2520339c7354ec632077c2db24a7 Mon Sep 17 00:00:00 2001 From: shadowik Date: Mon, 18 Dec 2023 18:09:19 +0400 Subject: [PATCH] Add Result Logs --- README.md | 12 +++++++++--- src/main.py | 15 +++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 37ac514..a557735 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,13 @@ -Группа ПИбд-31 -Участики: Захарченко Марк, Семиколенов Георгий, Каргин Даниил +## Группа ПИбд-31 +## Участики: + +- Захарченко Марк +- Семиколенов Георгий +- Каргин Даниил +- Красников Данил + +## Исходное задание (Вариант 5): -Исходное задание(Вариант 5): Найти оптимальное решение симплекс методом Z = 18y1 + 16y2 + 5y3 + 21y4 --> min y1 + 2y2 + 3y4 >= 2 diff --git a/src/main.py b/src/main.py index ef8187d..3b3d60c 100644 --- a/src/main.py +++ b/src/main.py @@ -34,6 +34,7 @@ class Simplex: func: np.ndarray count: int lst_header: list = ["ind", "bas", "Cb", "b"] + result = None def __init__(self, canon_cfg, func): self.func = func @@ -79,6 +80,7 @@ class Simplex: col = i break else: + self.result = m return mi = 999999 @@ -114,6 +116,18 @@ class Simplex: else: self.canon_conf[i][0][j] = self.canon_conf[i][0][j] - ((lst[row][j + 1] * lst[i][col + 1]) / k) + def get_answer(self): + if self.result is None: + return + print("Result:") + dct_ans = {i[2]: i[1] for i in self.canon_conf} + z = 0 + for i in range(len(self.func)): + print(f"x{i} = {dct_ans[i] if i in dct_ans else 0}", end=" ") + z += self.func[i] * (dct_ans[i] if i in dct_ans else 0) + print() + print(f"Z = {z}") + def print_table(self, m: list | None = None): print("Table:") print("-" * 100) @@ -144,5 +158,6 @@ if __name__ == "__main__": simp.find_basis() # simp.print_table() simp.method() + simp.get_answer()