Add Result Logs

This commit is contained in:
shadowik 2023-12-18 18:09:19 +04:00
parent bfc2ee3113
commit d9ff4235f7
2 changed files with 24 additions and 3 deletions

View File

@ -1,7 +1,13 @@
Группа ПИбд-31
Участики: Захарченко Марк, Семиколенов Георгий, Каргин Даниил
## Группа ПИбд-31
## Участики:
- Захарченко Марк
- Семиколенов Георгий
- Каргин Даниил
- Красников Данил
## Исходное задание (Вариант 5):
Исходное задание(Вариант 5):
Найти оптимальное решение симплекс методом
Z = 18y1 + 16y2 + 5y3 + 21y4 --> min
y1 + 2y2 + 3y4 >= 2

View File

@ -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()