Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 2
Регистрация: 12.10.2016
Сообщений: 137

Решение задачи линейного программирование симплекс-методом

26.09.2017, 19:02. Показов 2546. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разработайте алгоритм реализации симплексного метода линейного программирования.Оформите этот алгоритм с использованием процедур (или функции).
Затраты сырья на единицу изделия A:https://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{1}=15,{a}_{2}=12,{a}_{3}=3
Затраты сырья на единицу изделия B:https://www.cyberforum.ru/cgi-bin/latex.cgi?{b}_{1}=2,{b}_{2}=6,{b}_{3}=12
Количество имеющегося сырья:https://www.cyberforum.ru/cgi-bin/latex.cgi?{p}_{1}=300,{p}_{2}=306,{p}_{3}=360
Прибыль от реализации ед. продукции:https://www.cyberforum.ru/cgi-bin/latex.cgi?{c}_{1}=9,{c}_{2}=6
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.09.2017, 19:02
Ответы с готовыми решениями:

Решение задачи линейного программирования симплекс-методом
Помогите пожалуйста сделать, делал уже код из разных кусков разных программ, не получается

Задача линейного программирования симплекс методом
Для производства двух видов изделий A и B используются три типа технологического оборудования. На производство единицы изделия A...

Решение задач симплекс методом.
1. Производство угля с определенными свойствами. Предприятие должно поставлять заказчику уголь с содержанием фосфора не более 0,03% и...

3
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
27.09.2017, 08:28
Задача линейного программирования симплекс методом
0
0 / 0 / 2
Регистрация: 12.10.2016
Сообщений: 137
19.11.2017, 21:59  [ТС]
Нашел программу , помогите адаптировать под мои условия , пожалуйста.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
program Lab5;
const n=3; m=2; n1=3;
var str:array[1..m]of integer; 
a,a1,a2:array[1..n,1..m]of real; 
b,b1,b2:array[1..n]of real; 
c,c1,c2,otvet:array[1..m]of real; 
k,x,i,j:integer;
w:real; 
function res:real; 
var i,j:integer; r:real; 
begin 
r:=0; 
for j:=1 to m do 
if c1[j]=0 then 
for i:=1 to n1 do 
if a1[i,j]=1 then 
begin 
r:=r+c[j]*b1[i]; 
otvet[j]:=b1[i]; 
break; 
end; 
res:=r; 
end; 
function IA:integer; 
var min,max:real; i,j,stol:integer; 
begin 
max:=-maxint; 
for j:=1 to m do 
begin 
min:=maxint; 
for i:=1 to m do 
if a1[i,j]<>0 then 
if abs(b1[i]/a1[i,j])<min then 
begin 
min:=abs(b1[i]/a1[i,j]); 
str[j]:=i; 
end; 
if c1[j]*min>max then 
begin 
max:=c1[j]*min; 
stol:=j; 
end; 
end; 
IA:=stol; 
end; 
function opt:boolean; 
var i:byte; t:boolean; 
begin 
t:=true; 
for i:=1 to m do 
if c1[i]>0 then 
t:=false; 
opt:=t; 
end; 
procedure gg; 
var i,j:integer; 
begin 
writeln; 
for i:=1 to n do 
begin 
for j:=1 to m do 
write(a1[i,j]:8:2); 
writeln(b1[i]:8:3); 
end; 
for i:=1 to m do 
write(c1[i]:8:2); 
end; 
begin 
a[1,1]:=4; a[1,2]:=10; b[1]:=166;
a[2,1]:=2; a[2,2]:=10; b[2]:=138;
a[3,1]:=6; a[3,2]:=12; b[3]:=182;
c[1]:=6; c[2]:=20;
a1:=a; 
b1:=b; 
c1:=c; 
k:=0; 
while not(opt) do 
begin 
a2:=a1; 
b2:=b1; 
c2:=c1; 
x:=IA; 
k:=k+1; 
w:=a1[str[x],x]; 
gg; 
writeln; 
{writeln(k,' ',str[x],' ',x); 
readln;} 
for i:=1 to m do 
a1[str[x],i]:=a2[str[x],i]/w; 
b1[str[x]]:=b2[str[x]]/w; 
for i:=1 to n do 
if str[x]<>i then 
begin 
for j:=1 to m do 
a1[i,j]:=a2[i,j]-a1[str[x],j]*a2[i,x]; 
b1[i]:=b2[i]-b1[str[x]]*a2[i,x]; 
for j:=1 to m do 
c1[j]:=c2[j]-a1[str[x],j]*c2[x]; 
end; 
end; 
gg; 
writeln; 
writeln('optim result=',res:10:10); 
write('vector reshenuya='); 
for i:=1 to m do 
write(otvet[i]:8:3); 
readln; 
readln; 
end.
0
0 / 0 / 2
Регистрация: 12.10.2016
Сообщений: 137
07.12.2017, 19:45  [ТС]
Как проверить правильно ли высчитывает программа ?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
program zl;
const 
  n=3; 
  m=2; 
  n1=3;
var 
 str:array[1..m]of integer; 
 a,a1,a2:array[1..n,1..m]of real; 
 b,b1,b2:array[1..n]of real; 
 c,c1,c2,otvet:array[1..m]of real; 
 k,x,i,j:integer;
 w:real; 
function res:real; 
var 
 i,j:integer; r:real; 
begin 
 r:=0; 
for j:=1 to m do 
if c1[j]=0 then 
for i:=1 to n1 do 
if a1[i,j]=1 then 
begin 
 r:=r+c[j]*b1[i]; 
 otvet[j]:=b1[i]; 
 break; 
end; 
 res:=r; 
end; 
function IA:integer; 
var 
 min,max:real; i,j,stol:integer; 
begin 
 max:=-maxint; 
 for j:=1 to m do 
begin 
 min:=maxint; 
 for i:=1 to m do 
 if a1[i,j]<>0 then 
 if abs(b1[i]/a1[i,j])<min then 
begin 
 min:=abs(b1[i]/a1[i,j]); 
 str[j]:=i; 
end; 
 if c1[j]*min>max then 
begin 
 max:=c1[j]*min; 
 stol:=j; 
end; 
end; 
 IA:=stol; 
end; 
function opt:boolean; 
var 
 i:byte; 
 t:boolean; 
begin 
 t:=true; 
 for i:=1 to m do 
 if c1[i]>0 then 
 t:=false; 
 opt:=t; 
end; 
procedure gg; 
var 
 i,j:integer; 
begin 
 writeln; 
 for i:=1 to n do 
begin 
 for j:=1 to m do 
 write(a1[i,j]:8:2); 
 writeln(b1[i]:8:3); 
end; 
for i:=1 to m do 
 write(c1[i]:8:2); 
end; 
begin 
 a[1,1]:=15; a[1,2]:=2; b[1]:=300;
 a[2,1]:=12; a[2,2]:=6; b[2]:=306;
 a[3,1]:=3; a[3,2]:=12; b[3]:=360;
 c[1]:=9; c[2]:=6;
 a1:=a; 
 b1:=b; 
 c1:=c; 
 k:=0; 
while not(opt) do 
begin 
 a2:=a1; 
 b2:=b1; 
 c2:=c1; 
 x:=IA; 
 k:=k+1; 
 w:=a1[str[x],x]; 
 gg; 
 writeln; 
{writeln(k,' ',str[x],' ',x); 
readln;} 
for i:=1 to m do 
a1[str[x],i]:=a2[str[x],i]/w; 
b1[str[x]]:=b2[str[x]]/w; 
for i:=1 to n do 
if str[x]<>i then 
begin 
for j:=1 to m do 
a1[i,j]:=a2[i,j]-a1[str[x],j]*a2[i,x]; 
b1[i]:=b2[i]-b1[str[x]]*a2[i,x]; 
for j:=1 to m do 
c1[j]:=c2[j]-a1[str[x],j]*c2[x]; 
end; 
end; 
 gg; 
 writeln; 
 writeln('optim result=',res:10:10); 
 write('vector reshenuya='); 
for i:=1 to m do 
 write(otvet[i]:8:3); 
 readln; 
 readln; 
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.12.2017, 19:45
Помогаю со студенческими работами здесь

Написать программу для решения любой задачи Симплекс-методом
Помогите написать программу для решения любой задачи Симплекс-методом

Решение транспортной задачи любым методом
Нужна программа с решением транспортной задачи любым методом, лишь бы попроще. Но лучше симплекс - методом. Завтра сдаю, помогите,...

Решение задачи о рюкзаке методом динамического программирования
Разбейте задачу на подзадачи и постройте рекуррентное соотношение для вычисления значений подзадач. Определите порядок вычисления...

Решение задачи Коши обычным методом Эйлера
помогите пожалуйста, очень надо!! Pascal!! Решить задачу Коши обычным методом Эйлера с точностью \varepsilon =0,0001 с заданными...

Прокомментировать решение задачи Дирихле методом Гаусса-Зейделя
Ребят, помогите пожалуйста, завтра нужно преподавателю объяснить данную программу: Это решение задачи Дирихле методом Гаусса-Зейделя, сам...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru