На рис. 4 приведена блок-схема программы, демонстрирующая метод покординатного спуска и приведена программа определения мест расположения источника питания методом покоординатного спуска. Эта программа состоит из трех частей:
BLOCK ДАТА – служит для ввода исходных данных: (xi, yi) координат мест расположения приемников электроэнергии, их нагрузок Рi; в программе эти величины соответственно обозначены идентификатором Х, У, Р, число приемников обозначено идентификатором N;
PROGRAM МПС (метод покоординатного спуска) – основная неизменная часть программы;
FUNCTION F(x1,x2) – в этой части программы описывается функция, подлежащая минимизации.
Данная программа может быть использована для минимизации любой функции, состоящей из двух переменных, которые в программе обозначены индитификаторами Х1 и Х2. Шаг ХХ изменения переменных и их начальные значения выбираются в зависимости от конкретной задачи. Для примера, в тексте программы положено, что ХХ=Ø.1, Х1= Ø.Ø, Х2= Ø.Ø.
Программа МПС
BLOCK DAIA |
|
CONNON /A/X/B/P/C/E/AA/N |
|
DINENSTON X(n), Z(N), Y(N) |
|
DATA X,H,Y,N/………/ |
|
END |
|
PROGRAV МПС |
|
ТТ=1.Ø |
|
ХХ=Ø.1 |
|
X1=Ø.Ø |
|
X2=Ø.Ø |
|
УO=F(X1,X2) |
|
PRINT 3, УО |
|
3 |
FORMAT (2X,3HУ0=,F8.1) |
25 |
PRINT 5,TT |
5 |
FORMAT (2X,3HTT=,F4.1) |
1 |
X1=X1+XX |
У1=F(X1,X2) |
|
IF(У1.GT.УО) GO TO 2 |
|
УО=У1 |
|
PRINT 7,X1,У1 |
7 |
FORMAT (2F5.1) |
GO TI 1 |
|
2 |
X1=X1-XX |
УО=F(X1,X2) |
|
TT1=УО |
|
PRINT 9,X1,УО |
|
9 |
FORMAT (2X,3HX1=,F5.1,2X,3HУО=,F8.1) |
6 |
X2=X2+XX |
У1=F(X1,X2) |
|
IF(У1,GT.УО) GO TO 4 |
|
УО=У1 |
|
PRINT 7,X2,У1 |
|
GO TO 6 |
|
4 |
X2=X2-XX |
УО=F(X1,X2) |
|
TT2=УО |
|
PRINT 11,X2,УО |
|
11 |
FORMAT (2X,3HX2=,F5.1,2X,3HУО=,F8.1) |
IF(TT2.EQ.TT1) GO TO 13 |
|
TT=TT+1.Ø |
|
GO TO 25 |
|
13 |
STOP |
END |
|
FUNCTION F(X1,X2) |
|
COMMON /A/X/B/P/C/У/AA/N |
|
DIMENSTON X(1),P(1),У(1) |
|
A1=Ø.Ø |
|
A2=Ø.Ø |
|
A3=Ø.Ø |
|
A4=Ø.Ø |
|
OO 19 I=1,N |
|
A1=A1+P(I) |
|
A2=A2+P(I) * X(I) |
|
A3=A3+P(I) * У(I) |
|
19 |
A4=A4+P(I) * SQRT ((X(I)-X1)**(У(I)-X2)**2) |
F=A4 |
|
RETURN |
|
END |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.