назад Оглавление вперед


[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [ 125 ] [126]


125

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

[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [ 125 ] [126]