tify"> 3) For to tryNum  
 Do PREY (pr 2t - 1 , pr 2t , XP , i) 
  If preySuccess=false XP [i] X [i] + RAND [r + i] 
   Процес інстинктивно-колективного переміщення  
  Наведемо опис для алгоритму для функції, що здійснює колективно-інстинктивний рух. X c і nf тут вляются центром позиції супутників риби і числом супутників риби відповідно. X c -X [i] 
  Алгоритм: 
 ) Визначаємо процес видобутку для виконання: i 
  2) 
  3) If i? N 
  Then return 
  Розраховуємо. X c і n f 
  If задовольняє умовам інстинктивно-колективного руху 
   Then 
  If 
   Then продовжувати процес видобутку 
   Процес інстинктивно-вольового переміщення  
  Наведемо опис алгоритму для функції інстинктивно-вольового переміщення. Тут X min використовується для запису стану риб з мінімальною фітнес функцією, а F min - мінімальна фітнес функція компаньйонів даної риби. 
  Алгоритм: 
 ) Визначаємо процес видобутку для виконання 
   2) 
  3) If i? N 
   Then return 
  4) Знаходимо компаньйона риби з мінімальною фітнес функцією 
				
				
				
				
			 ) Розраховуємо число компаньйонів риби nf 
   If n f!=0 and F min lt; TESTF [i] and n f/N lt; д 
  Then 
  If then виконати процес видобутку 
    Оновлення станів всіх риб  
  Встановлюємо розмір сітки та розміру блоку рівним grid 1 і block 1 відповідно. Після запуску ядра буде виконано N потоків, кожен з яких оновить стан однієї риби. Наведемо алгоритм функції. 
  Алгоритм: 
 ) Визначаємо, позицію якої риби оновити: i 
 ) Обчислюємо фітнес-значення XP [i] і зберігаємо результат в розділяється пам'яті pF [i] 
 ) Обчислюємо фітнес-значення XS [i] і зберігаємо результат в розділяється пам'яті sF [i] 
 ) Обчислюємо фітнес-значення XF [i] і зберігаємо результат в розділяється пам'яті fF [i] 
 ) Зберігаємо кращий стан з трьох вищеперелічених в змінну X [i] 
   . Оцінка продуктивності  
   Експерименти для оцінки продуктивності були запущені на системі з наступною конфігурацією: Intel (R) Core (TM) 2 Duo CPU E7500 2.93 Ггц, з 4.0 ГБ RAM. Графічний процесор - NVIDIA GTX 260. Порівняння продуктивності засноване на чотирьох стандартних тестових функціях (див. Таблицю 1) 
   Таблиця 1. Тестові функції 
  Назва функцііУравненіе функцііОбласть поіскаСфера Растригина Грівонка Розенброка 
   Час виконання і прискорення в залежності від розміру популяції  
  Для вимірювання часу виконання і прискорення в залежності від розміру популяції, встановимо D=50 для всіх експериментів, а кількість ітерацій iterNum покладемо рівним 100. Крок і д покладемо 3.5 і 0.618 відповідно. Результати представлені нижче, див. Таблиці 2,3,4,5. 
    Таблиця 2. Результати виконання алгоритму на функції сфери 
  NВремя виконання ЦПУВремя виконання ГПУУскореніеРезультат на ЦПУРезультат на ГПУ1500140.0425.81024.1031.28е - 0051.16е - 0052000254.1408.75429.0314.23е - 0063.37е - 0062500358.11012.77828.0251.95е - 0061.77е - 0063000561.15817.43132.1922.27е -0072.39е - 007 
  Таблиця 3. Результати виконання алгоритму на функції Растригина 
  NВремя виконання ЦПУВремя виконання ГПУУскореніеРезультат на ЦПУРезультат на ГПУ1500147.8595.88125.1401.69e - 0011.80e - 0012000237.6218.82226.9331.22e - 0011.12e - 0012500382.11712.85429.7286.35e - 0025.85e - 0023000515.86917.49829.4812.45e -0022.45e - 002 
  Таблиця 4. Результати виконання алгоритму на функції Грінвонка 
  NВремя виконання ЦПУВремя виконання ГПУУскореніеРезультат на ЦПУРезультат на ГПУ1500154.7995.88626.3011.79e - 0071.19e - 0072000249.3398.82328.2602.55e - 0102.59e - 0102500387.78012.83130.2182.61...