Алгоритм парных перестановок для решения задач оптимизации компоновки и размещения элементов РЭС: Учебное пособие, страница 36

Весь массив из N элементов делится сначала на 2 одинаковые части (если число элементов нечетное, то в одной из частей на 1 элемент больше), потом каждая часть делится еще пополам и так далее, до получения нужного количества элементов в группе (рис. 6.2).

Алгоритм работает следующим образом. Сначала определяется четность массива. Если N - нечетное число, то элемент, имеющий минимальную температуру, изымается из массива. Если же N - четное число, то изъятие не производится. Разбиение на 2 части (массивы А и В) массива N производится  следующим образом: сначала в массив А заносится элемент с самой высокой температурой, а в массив В элемент с максимальной температурой из оставшихся, затем в массив А заносится элемент с минимальной температурой, а в массив В также с минимальной температурой из оставшихся и так далее до тех пор, пока все элементы начального массива не разделятся между массивами А и В. В случае нечетного количества элементов в массиве N изъятый элемент с минимальной температурой присоединяется к тому массиву А или В, который имеет меньшую суммарную температуру.

 


Разделение каждого массива А и В проводится аналогичным образом. Разделение соответствующих массивов проводится до тех пор, пока число элементов в любом массиве окажется более заданного не более, чем на 1.

В результате получаем группы элементов, суммарная температура каждой из которых отличается от средней суммарной температуры групп не более чем на 2-3 процента. При этом следует отметить, что чем больше элементов в группе, тем меньше это отличие. Этот алгоритм был реализован программно на языке Паскаль. Программа позволяет оптимизировать размещение до 5000 элементов.

В качестве примера приведем следующий. Пусть требуется разбить 80 элементов (N = 80) на группы по 10 элементов, так, чтобы суммарная температура каждой группы была одинакова. Температуры элементов приведены в табл. 6.1. Результаты разбиения представлены в табл. 6.2. Анализ результатов показывает, что суммарная температура для каждой группы отличается от средней не более, чем на 0,6 %.

Таблица 6.1

Температура элементов

Номер

эл-та

t,

oC

Номер

эл-та

t,

oC

Номер

эл-та

t,

oC

Номер

эл-та

t,

 oC

1

53

21

60

41

43

61

54

2

35

22

61

42

65

62

49

3

49

23

49

43

66

63

30

4

69

24

69

44

66

64

32

5

35

25

63

45

60

65

41

6

66

26

44

46

58

66

57

7

40

27

43

47

40

67

66

8

49

28

46

48

58

68

57

9

68

29

35

49

61

69

46

10

48

30

54

50

55

70

41

11

61

31

55

51

30

71

69

12

66

32

56

52

58

72

51

13

32

33

58

53

48

73

67

14

60

34

39

54

40

74

56

15

32

35

51

55

69

75

64

16

51

36

58

56

49

76

30

17

48

37

66

57

43

77

30

18

40

38

51

58

38

78

50

19

61

39

30

59

38

79

38

20

58

40

65

60

37

80

56