Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2014, 15:14   #11
delaimo
 
Регистрация: 24.05.2014
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Это обычная транспортная задача . Просто от Вас требуют не стандартное решение (а может даже и стандартное, но под другим соусом).
И метод потенциалов под определенным углом есть динамическое программирование .
Кто выдал задание? Нельзя у него уточнить, что именно требуется?
Объяснить сложно))) Но вот теория.
Мне бы хотя бы понять как делать))
delaimo вне форума Ответить с цитированием
Старый 03.06.2014, 16:10   #12
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Мне бы хотя бы понять как делать))
Для этого надо читать теорию. Если теория не понятна, читать теорию объясняющую нужную вам теорию.
Человек_Борща вне форума Ответить с цитированием
Старый 03.06.2014, 17:23   #13
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Чё вы тут распределять собираетесь, тем более динамически?

Код:
Результаты оптимизации по состоянию на:  03.06.2014 17:19:50

Максимум целевой функции  "Прибыль предприятия" = 150	

ограничения	данные расчёта	знак	задан.знач-я
Эл. Компоненты	     15	<=	15	
Железо	                 9    <=	9	
Пластик	          18         <=	30	


переменные	данные расчёта	
Магнитофон	0	
Видеокамера	3	
Эл. замок	0	
Телевизор	0
Из ваших железок, только 3 видеокамеры выйдет и то, пластик недоиспользован .
Решено симплекс-методом.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 03.06.2014 в 17:31.
Smitt&Wesson вне форума Ответить с цитированием
Старый 03.06.2014, 19:52   #14
delaimo
 
Регистрация: 24.05.2014
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Чё вы тут распределять собираетесь, тем более динамически?

Код:
Результаты оптимизации по состоянию на:  03.06.2014 17:19:50

Максимум целевой функции  "Прибыль предприятия" = 150	

ограничения	данные расчёта	знак	задан.знач-я
Эл. Компоненты	     15	<=	15	
Железо	                 9    <=	9	
Пластик	          18         <=	30	


переменные	данные расчёта	
Магнитофон	0	
Видеокамера	3	
Эл. замок	0	
Телевизор	0
Из ваших железок, только 3 видеокамеры выйдет и то, пластик недоиспользован .
Решено симплекс-методом.
Я уже написал что изображением ошибся (я без понятия куда нужную табличку дел...)
И суть сделать с помощью динамического, а не просто сделать задачу.
http://stu.sernam.ru/book_sop.php?id=16 тут объясняется как это сделать, но ничего не понятно


по сути и эта таблица подойдет, как видно максимум одному предприятию можно отдать 8 ед ресурса и после какого-то кол-ва ресурсов цена уже не будет возрастать

Вообщем выручайте, готов даже заплатить за код.

Последний раз редактировалось delaimo; 03.06.2014 в 21:12.
delaimo вне форума Ответить с цитированием
Старый 04.06.2014, 18:38   #15
delaimo
 
Регистрация: 24.05.2014
Сообщений: 8
По умолчанию Динамическое программирование

Господа помогите понять, мне нужно решить задачу с помощью динамического программирования но я не понимаю его сути...

Вообщем есть процедура помогите понять она сделана с помощью динамического программирования или нет?

По сути этот код вычисляет максимум стоимости в задаче о ресурсах
Код:
procedure P1;
var i,j,ii:integer;
begin
    for j:=1 to KStr do    begin
MasShet[1][j][1]:=MasDano[1][j];MasShet[1][j][2]:=0;MasShet[1][j][3]:=j;
    end;{j}
for i:=1 to KStr do    begin
for j:=2 to KStl do    begin
if MasShet[j-1][i][1]<MasDano[j][i] then
begin
MasShet[j][i][1]:=MasDano[j][i];MasShet[j][i][2]:=0;MasShet[j][i][3]:=i;
end
else
 begin
 MasShet[j][i][1]:=MasShet[j-1][i][1]; MasShet[j][i][2]:=i; MasShet[j][i][3]:=0;
 end;
if i>1 then begin
for ii:=1 to i-1 do
    begin
if (MasShet[j-1][i-ii][1]+MasDano[j][ii])>MasShet[j][i][1] then
begin
MasShet[j][i][1]:=MasShet[j-1][i-ii][1]+MasDano[j][ii];MasShet[j][i][2]:=i-ii;MasShet[j][i][3]:=ii;
end;    end;{ii}    end;    end;{j}    end;{i}
i:=1;
 for j:=2 to KStr do begin if MasShet[KStl][j][1]>MasShet[KStl][j-1][1]then i:=j;  end;{j}
MasTemp[KStl]:=MasShet[Kstl][i][3];
i:=MasShet[KStl][i][2];
for ii:=1 to KStl-1 do begin MasTemp[KStl-ii]:=MasShet[KStl-ii][i][3]; i:=MasShet[KStl-ii][i][2];    end;{ii}
end;{P1()}
Если не понятен код то вот вся программа

Последний раз редактировалось delaimo; 04.06.2014 в 18:44.
delaimo вне форума Ответить с цитированием
Старый 04.06.2014, 18:51   #16
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

В код вносят ясность комментарии. Тут и проект не поможет....
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на динамическое программирование makskovalko Помощь студентам 2 29.01.2014 22:25
Динамическое программирование, Visual C#/C++, задача о рюкзаке fanpilot Помощь студентам 0 21.12.2011 23:13
Задача на динамическое программирование) Андрей1010 Паскаль, Turbo Pascal, PascalABC.NET 4 11.10.2011 13:56
Динамическое программирование!!! Fuckkiller Microsoft Office Excel 13 04.05.2011 19:03
Задача на динамическое программирование Римма1990 Помощь студентам 2 02.04.2009 23:11