end do
!! Независимая оптимизация 11=0
do i=i,n
ll=ll+sqrt(2*(gs(0)+gs(i))*ls(i)*hs(i)) end do
print *, Независимая оптимизация, 11 = ,11
print *, Общий период gg=gs(0); lhk=0 do i=l,n
gg=gg+gs(i); lhk=lhk+ls(i)*hs(i) end do gg=2*gg
tt=sqrt(gg/lhk); ll=sqrt(gg*lhk)
write (*,4a,el2.5)) Минимальные затраты = , 11 write (*,(a,el2.5)) Базисный период = , tt
!! Начальное приближение tt=sqrt(2*(gs(0)+gs(l))/(ls(l)*hs(l)))
!! Начальная группировка к(1)=1; кк=1
r=2*gs(l)/(kk*(kk+l)*tt**2) do i=2,n
do while (Is(i)*hs(i)<=r)
kk=kk+l; r=2*gs(i)/(kk*(kk+l)*tt**2)
end do
k(i)=kk end do
gg=gs(0); lhk=0 do i=l,n
gg=gg+gs(i)/k(i); lhk=lhk+ls(i)*hs(i)*k(i) end do gg=2*gg
tt=sqrt(gg/lhk); ll=sqrt(gg*lhk)
!! Правые границы интервала постоянства группировок do i=l,n
if (k(i)==l) then right(i)=le20
else
right(i)=sqrt(2*gs(i)/(ls(i)*hs(i)*(k(i)*(k(i)~l)))) end if end do
!! Левые границы интервала постоянства группировок do i=l,n
left(i)=sqrt(2*gs(i)/(ls(i)*hs(i)*(k(i)*(k(i)+l)))) end do
print *, Начальное состояние
write (*,4a,el2.5)0 Минимальные затраты = *, 11 write (*,4a,el2.5)) Базисный период = \ tt print *, inew iold g/(h*lam) к left right do i=l,n
j=y(i);
writeC*,(2i6,el2.3,i6,2el2.3)О &
i,j,glh(i),k(i),left(i),right(i)
end do
!! Выбираем направление движения key=0
if (any(right<tt)) then key=l
else
if (any(left>tt)) key=-l end if
if (key==l) then
print *, Пошли вправо do while (key==l) key=0 do i=l,n
if (right(i)<=tt) then key=l
gg=gg+2*gs(i)/(k(i)*(k(i)-l))
lhk=lhk-ls(i)*hs(i)
k(i)=k(i)~l
right(i)=sqrt(2*gs(i)/ &
(ls(i)*hs(i)*k(i)*(k(i)-l)))
end if end do
tt=sqrt(gg/lhk); ll=sqrt(gg*lhk) print *, tt = ,tt, 11 = ,11 end do else
print *, Пошли влево do while (key==-l) key=0 do i=l,n
if (left(i)>=tt) then key=-l
gg=gg-2*gs(i)/(k(i)*(k(i)+l))
lhk=lhk+ls(i)*hs(i)
k(i)=k(i)+l
left(i)=sqrt(2*gs(i)/ &
(ls(i)*hs(i)*k(i)*(k(i)+l)))
end if end do
tt=sqrt(gg/lhk); ll=sqrt(gg*lhk) print *, tt = ,tt, 11 = ,11 end do end if
write (*,(a,el2.5)) Минимальные затраты = , 11 write (*,(a,el2.5)) Базисный период = , tt kk=0
do i=l,n
if (k(i)/=kk) then kk=k(i)
write (*,( ,a,i3)) Коэффициент кратности = ,k(i) end if
write (*,(i6\)) y(i) end do