![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 28.11.2009
Сообщений: 13
|
![]()
Есть задача оптимизации. В задаче есть несколько параметров, которые необходимо реализовать за заданный период времени. Ограничения накладываться должны так, чтобы, например,2-й параметр не реализовывался в 1-м году, если в этом году уже реализуется какой-либо из других параметров.
Не знаю как это сделать, Помогите, плиз! вот мой предварительный код этих ограничений: Причем ogr_int[t] - массив ограничений по времени, ограничений всего 3. for (k = 1; k <= size_arr + 1; k++) { for (t = 1; t <= t_plan_i; t++) { for (ogr_int[t] = 1; ogr_int[t] <= 3; ogr_int[t]++) { proverka[t] = (min1[t] + opt1[t] + max1[t]) / 3; p[t] = (vse_min1[t] + vse_opt1[t] + vse_max1[t]) / 3; if (ogr_int[t] == 1) { if (proverka[t] >= p[t]) { mas[k, t] = 1; listBox2.Items.Add(mas[k, t].ToString() + ' ' + k.ToString() + ' ' + t.ToString()); // MessageBox.Show(proverka[t].ToString() + ' ' + p[t].ToString() + ' ' + k.ToString() + ' ' + t.ToString()); break; } } if (ogr_int[t] == 2) { if (proverka[t] >= p[t]) { mas[k, t] = 1; // MessageBox.Show(mas[k, t].ToString() + ' ' + k.ToString() + ' ' + t.ToString()); // listBox2.Items.Add(mas[k, t].ToString() + ' ' + k.ToString() + ' ' + t.ToString()); break; } } if (ogr_int[t] == 3) { if (proverka[t] <= p[t]) { mas[k, t] = 1; // MessageBox.Show(mas[k, t].ToString() + ' ' + k.ToString() + ' ' + t.ToString()); // listBox2.Items.Add(mas[k, t].ToString() + ' ' + k.ToString() + ' ' + t.ToString()); break; } } |
![]() |
![]() |
![]() |
#2 |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]() |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 28.11.2009
Сообщений: 13
|
![]()
Не могли бы вы объяснить по подробнее? Мне на выходе необходимо получить двумерный массив параметров и года когда их необходимо реализовать. Не знаю, разве можно такое сделать через булевые переменные? и если можно, то как?
|
![]() |
![]() |
![]() |
#4 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
![]()
Введи массив из 3-х элементов,типа bool (например, bool [] BLmas=new bool[3]). Как только задействуешь один из параметров с индексом i, то все,кроме элемента i делай false. И делай проверку или введи их в целевую функцию ((int)BLmas[i])*param[i]( если BLmas[i]-false,то произведение будет равно нулю). Массив BLmas создавай при расчете каждого года,инициализируй значениями true.
Не давай организму поблажки, каждый день тренируй его в шашки..
![]() |
![]() |
![]() |
![]() |
#5 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
![]()
Пост продублировался.(
Не давай организму поблажки, каждый день тренируй его в шашки..
![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 28.11.2009
Сообщений: 13
|
![]()
Я просто новичок в этом. Если не сложно, можете программно написать как это будет выглядеть?
|
![]() |
![]() |
![]() |
#7 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
![]()
Напиши условие задачи,а то разбираться в твоем коде сил нет
Не давай организму поблажки, каждый день тренируй его в шашки..
![]() |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 28.11.2009
Сообщений: 13
|
![]()
Есть портфель, в котором находится i-тое количество проектов и этот портфель нужно реализовать за 7 лет. Причем если в год 1 реализуется проект 1, то больше в этот год реализовывать другие проекты нельзя. Количество проектов и лет "вытягиваем" из БД.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как правильно составить ER-диаграмму? | Cat 1988_88 | Помощь студентам | 0 | 16.10.2010 17:20 |
Составной запрос, как правильно составить? | Bendebej | SQL, базы данных | 10 | 26.02.2010 20:01 |
Как правильно составить маску? | Pavell | PHP | 1 | 05.01.2009 15:58 |
как правильно составить формулу в Excel? | Вики | Помощь студентам | 2 | 01.02.2008 12:20 |