Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как улучшить код? 
:(
    Опции темы
Gnummi
Дата 13.10.2011, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 13.10.2011

Репутация: нет
Всего: нет



Доброго времени суток!
Подскажите, пожалуйста, как улучшить ниже приведенный код


Код

Q1:=Time;
while alf<=alfV do
 begin
  while beta<=betaV do
   begin
    while gamma<=gammaV do
     begin
       ClP:=ClP+1;
       Result1[2,ClP]:=alf; 
       Result1[3, ClP]:=beta; 
       Result1[4, ClP]:=gamma;
      for k:=1 to SpinEdit1.Value do
        begin
        F1:=0;
        F2:=0;
        SetLength(x,n+1);             
        SetLength(Profit,m+1);       
        SetLength(Xopt,n+1);   
        Gen(X);
        ColIter:=1;            
        Q3:=Time;
        Gt (X, Xopt, F1,F2);
        for i:=1 to n do
           X[i]:=Xopt[i];
        if abs(F2-F1)>0.01 then
        for ColIter:=1 to 3 do
            begin
              Gt (X, Xopt, F1,F2);
              for i:=1 to n do
                  X[i]:=Xopt[i];
            end;
         Q4:=Time;
       X:=nil;
       Xopt:=nil;
       Profit:=nil;
       end;   
    gamma:=gamma+step3;
  end; 
  gamma:=gammaN;
  beta:=beta+step2;
 end; 
 beta:=betaN;
 alf:=alf+step1;
end; 
Q2:=Time;
Label36.Caption:='Время 1'+TimeToStr(Q2-Q1);
Label37.Caption:='Время 2 '+TimeToStr(Q4-Q3);
end;



Profit рассчитывается внутри процедуры Gt.
В процедуре Gt оптимизирую вектор X. X -на входе в процедуру XOpt,F1,F2 - на выходе
В данном случае SpinEdit1.Value=1 
Есть параметры альфа, бета и гамма (их задает пользователь)
В случае когда 
Альфа изменяется в диапозоне [0,1;0,4] с шагом 0,1 
Бета изменяется в диапозоне [1;10] с шагом 1 
Гамма изменяется в диапозоне [1;10] с шагом 1 
Q2-Q1 общее время работы данной части кода и оно равно 00:02:45
А Q4-Q3 время работы Gt и оно равно 00:00:00 т.е. в мсек

А в случае если альфа, бета беру из указанного диапозона, а гамма в диапозоне [0;1] с шагом 1
То общее время работы 00:00:14 

Как улучшить код, чтобы это все не висло?? 
Заранее спасибо за помощь!

Это сообщение отредактировал(а) bems - 14.10.2011, 01:35
PM   Вверх
bems
Дата 14.10.2011, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Сложно сказать не видя всего полностью


--------------------
Обижено школьников: 8
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.