29
GENETİK ALGORİTMALARA GİRİŞ (III) Nedim TUTKUN Düzce Üniversitesi Elektrik Elektronik Mühendisliği Bölümü [email protected] Düzce Üniversitesi Elektrik&Elektronik Mühendisliği Bölümü Konuralp 81620 Düzce

GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

  • Upload
    others

  • View
    20

  • Download
    0

Embed Size (px)

Citation preview

Page 1: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

GENETİK ALGORİTMALARA GİRİŞ

(III)

Nedim TUTKUN

Düzce Üniversitesi

Elektrik Elektronik Mühendisliği Bölümü

[email protected]

Düzce Üniversitesi

Elektrik&Elektronik Mühendisliği Bölümü

Konuralp 81620 Düzce

Page 2: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

Bölüm Konu Başlıkları

• Seçim Strateji Çeşitleri

• Uygunluk Orantılı Seçim

• Elitizm

• Çaprazlama

• Mutasyon

2

Page 3: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

Seçim operatörü oldukça basittir: en iyi %50 yeniden çoğalma için seçilir

ve geri kalanlar atılır. Bu pratik bir yöntemdir ancak çok yaygın değildir.

Bunun bir nedeni, en iyiyi çoğaltmak (en kötüyü engellemek) olmasına

rağmen, “iyi” ve “çok iyi” arasında herhangi bir ayrım yapmamasıdır.

Ayrıca, çok daha düşük bir olasılık ile sadece zayıf çözümlerin bir sonraki

kuşağa ilerlemesi yerine, (nüfusun genetik çeşitliliğini azaltarak) basit bir

şekilde onları yok eder. Ayrıca, çok daha düşük bir olasılık ile sadece kötü

çözümlerin bir sonraki kuşağa aktarılmasından ziyade, (popülasyonun

genetik çeşitliliğini azaltarak) basit bir şekilde onları elimine eder. Daha

yaygın bir seçim operatörü, uygunluk orantılı veya rulet çemberi seçimidir.

3

Uygunluk Orantılı Seçim/Rulet Çemberi

Page 4: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

Bu yaklaşım ile seçilme ihtimali bir bireyin uygunluğu ile orantılıdır.

Herhangi bir bireyin uygunluk değeri ile orantılı bölme büyüklüğüne sahip

bir popülasyonun tamamının rulet çemberini oluşturduğu düşünülürse

rulet çemberi ile olan benzerlik ortaya çıkar. Çember döndükten sonra

şekilsel olarak "top" içeri atılır. Herhangi bir bölmeye sonradan top gelme

ihtimali bölmenin yayı ile orantılıdır ve bu ilgili bireyin uygunluğudur.

Sırası ile 2.7, 4.5, 1.1, 3.2, 1.3 ve 7.3 uygunluk değerlerine sahip 6

bireyden (a, b, c, d, e ve f) oluşan bir topluluğa ilişkin yaklaşım Şekilde

gösterilmektedir.

4

Uygunluk Orantılı Seçim/Rulet Çemberi

Page 5: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

5

Uygunluk Orantılı Seçim/Rulet Çemberi

2.7

4.5

1.1 3.2

1.3

7.3

Uygunluk Değerleri

a

b

c

d

e

f

Page 6: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

6

Uygunluk Orantılı Seçim/Rulet Çemberi

0.134

0.224

0.055

0.159

0.065

0.363

Bireysel Olasılık

a

b

c

d

e

f

Page 7: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

7

Uygunluk Orantılı Seçim/Rulet Çemberi

0.134 0.358

0.413

0.572 0.637

1

Birikmeli Olasılık

a

b

c

d

e

f

Page 8: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

8

Uygunluk Orantılı Seçim/Rulet Çemberi

Sayı String Uygunluk pi qi ri

1 a 2.7 0.134 0.134 0.941287

2 b 4.5 0.224 0.358 0.073296

3 c 1.1 0.055 0.413 0.278547

4 d 3.2 0.159 0.572 0.534955

5 e 1.3 0.065 0.637 0.78424

6 f 7.3 0.363 1 0.846523

20.1 1

Page 9: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

Bu operatörü uygulamak, göründüğünden daha kolaydır.

Popülasyonun uygunluk değerlerinin toplamı ile tekerleğin çevresi

verilmiş olup, top değeri 0 ile bu toplam arasındaki rastgele bir sayı

ile gösterilir. Topun hangi bireye ait bölmeye düşeceğini bulabilmek

için, popülasyon üyelerinin uygunluğu toplanır, ancak elde edilen

yeni toplam rastgele üretilen sayı değerini aştığı zaman işlem

durur. Tam bu noktada, eklenen son birey seçilmiş bireydir.

Algoritma aşağıda özetlenmiştir:

9

Uygunluk Orantılı Seçim/Rulet Çemberi

Page 10: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

Algoritmanın Tanımı:

Adım 1: Popülasyondaki bütün üyelerin uygunluk değerlerini toplayın.

fsum= 𝑓𝑖𝑁𝑖

Adım 2: 0 ila fsum arasında rastgele bir sayı üretin. (Rs)

Adım 3: Popülasyon üyelerinin uygunluk değerlerini birbirine ekleyin.

Eğer birikmeli toplam Rs’den büyük olduğunda hemen durun. Son

eklenen üyeyi seçilmiş üye olarak alın ve kopyasını bir sonraki

jenerasyona geçirin.

10

Uygunluk Orantılı Seçim/Rulet Çemberi

Page 11: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

Bir çift bireyin geçip geçmemesi veya çaprazlama olup olmamasını

belirlemek için seçim mekanizması iki kez (Adım 2) uygulanır.

Seçim, N birey (popülasyon büyüklüğü, çift olduğu varsayılarak)

seçilene kadar devam edilir. Burada, kullanılan seçim tipi φ

değeriyle gösterilmiş olup; φ = ѓ, uygunluk orantılı (rulet çemberi)

seçim stratejisini göstermektedir.

11

Uygunluk Orantılı Seçim/Rulet Çemberi

Page 12: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

Uygunluk orantılı veya rulet çemberi seçimi en uygun birey dahi olsa

her hangi bireyin seçimi garanti etmez.

En uygun birey diğerlerine göre çok çok daha iyi olmadıkça nadiren

seçilmeyebilir.

Seçilmeyen birey atılır. Bu şekilde uygunluk orantılı seçim ile

çözülmesi düşünülen problem için muhtemel en iyi çözüm atılmış olur.

Bu durum dezavantajlı gibi görünse de algoritmayı yavaşlattığı ve

erken yakınsama yapmadan önce arama uzayında daha çok keşif

imkanı sağladığından bazı problemlerin çözümü için avantajlı olabilir.

Arama uzayının keşfi ile bulunanların kullanılması arasındaki denge

Genetik Algoritma teorisinde devam edegelen bir tartışma konudur.

12

Uygunluk Orantılı Seçim/Rulet Çemberi

Page 13: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

Elit üyenin her bir jenerasyonda tutulması elitizm olarak adlandırılır

ve sadece seçilmesi yeterli olmayıp aynı zamanda kopyasının

çaprazlama ya da mutasyon ile bozulumaması gerekir. Elitizm ne kadar

fazla kullanırsa algoritmada o kadar iyileşme sağlanabilir. Ancak işin

sonunda gerçek optimum değeri bulmak için algoritmanın başarısız olma

ihtimali söz konusu olabilir. Çoğu uygulamada jenerasyonlar arasında en

iyiyi veya elit üyeyi kaybetmeyerek arama hızı büyük ölçüde arttırılabilir.

Burada, elitizm έ ile gösterilir (yalnızca 0 ya da 1 değerini alabilir); eğer

έ=1 ise elitizm uygulanır, eğer έ=0 ise elitizm uygulanmaz.

13

Elitizm

Page 14: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

Çaprazlama, arama uzayında yeni parçaların keşfini mümkün kılan farklı

çözümlere ait bilginin bir araya gelmesine olanak sağlayan bir yöntemdir.

Tek nokta çaprazlama seçilen string çiftleri rastgele bir yerden kesilir (1 ile

L -1 arasında rasgele bir sayı olan RL) ve 2 yavru string oluşturmak için

parçaları değiştirilir. Yeni popülasyon yapılan seçim ve çaprazlama ile N

bireyden oluşur (başlangıç popülasyonu ile aynı sayıda olur). Daha

sonra elit üye dışında tüm popülasyon üzerinde mutasyon işlemi yapılır

(eğer elitizm seçeneği uygulandı ise). Bu işlem yapıldıktan sonra, eski

topluluk yenisi ile değiştirilir ve üretim sayacı olan g bir artırılır.

14

Çaprazlama İşlemi

Page 15: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

Temel Genetik Algoritma, rekombinasyon işlemi için tek nokta

çaprazlama kullanır (doğal hayatta, 1 ilâ 8 arasında çaprazlama noktası

olduğu bildirilmiştir. Seçilen çiftler Pc olasılığı ile çaprazlama işlemine tabi

tutulurlar. Burada ilk olarak 0-1 aralığında rastgele bir sayı olan Rc, üretilir

ve bireyler, ancak ve ancak Rc ≤ Pc olduğunda çaprazlanırlar. Aksi

durumda çift, çaprazlama yapılmadan onaylanır. Genelde Pc değerleri 0.4

ila 0.9 aralığındadır. (Eğer Pc = 0.5 ise, yeni popülasyonun yarısı seçim

ve çaprazlama ile diğer yarısı ise çaprazlamasız oluşturulur.)

Çaprazlama olmaksızın popülasyonun ortalama uygunluk değeri ƒave, en

uygun üyenin ƒmax uygunluk değerine eşit olmasına kadar artacaktır.

15

Çaprazlama İşlemi

Page 16: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

16

Çaprazlama: Tek Nokta

EBEVEYN

1 0 1 0 0 0 1 0 1 0 1

1 1 1 1 1 1 1 1 1 1 1

YAVRULAR

1 0 1 0 1 1 1 1 1 1 1

1 1 1 1 0 0 1 0 1 0 1

Tek nokta çaprazlama için 1 ila L-1 arasında rastgele bir

tamsayı (RL=4) üretilir.

L=11

Page 17: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

Doğada birçok süreç mutasyona neden olur ve en basit olanı replikasyon

sırasında olan hatadır. Basit bir binari gösterimde mutasyonu uygulamak

kısmen kolaydır. Her bir yeni jenerasyon ile her ziyaret edilen stringdeki

her bit pozisyonu ile tüm popülasyon taranır ve çok nadiren 1 değeri 0

değerine döndürülür veya tam tersi yapılır. Mutasyon olasılığı, Pm binde

bir mertebesindedir. Yani her bin bitten sadece bir tanesi mutasyona

maruz kalır. Ancak Genetik Algoritma ile ilgili her şeyde olduğu gibi Pm

değerinin doğru ayarlanması probleme bağlıdır. Birçok araştırmacı Pm

değerini stringin bit uzunluğunun tersi 𝑃𝑚 =1

𝐿, bazıları ise 𝑃𝑚 =

1

𝑁 𝐿 olarak

almaktadır.

17

Mutasyon İşlemi

Page 18: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

Literatürde pek çok mutasyon türü önerilmektedir. Bazı çalışmalarda her

bir bit pozisyonu ziyaret edilmekte, pozisyondaki bit rastgele 0 veya 1

yapılmakta ve mevcut değer yeni değerle değiştirilmektedir. Mutasyon

problemin herhangi bir yerel optimum noktaya yakınsamayı

engelleyebilmek için tercih edilmektedir. Mutasyon oranları genellikle

düşük tutulmaktadır. Bunun nedeni çaprazlama sonucu elde edilen uyum

değeri yüksek dizileri kaybetmemektir. Değer değiştirme en basit

mutasyon yöntemi olarak bilir. Burada stringdeki herhangi bir bitin değeri

1 iken 0 ya da tersi yapılarak uygulanır. Kaydırma, Yerleştirme ve

Karşılıklı Değişim yöntemleri diğer bilinen mutasyon çeşitleridir.

18

Mutasyon İşlemi

Page 19: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

19

Mutasyon: Bit Tersleme/Değer Değiştirme

A STRİNGİ

1 2 3 4 5 6 7 8 9 10 11

1 1 1 1 0 0 1 0 1 0 1

B STRİNGİ

1 2 3 4 5 6 7 8 9 10 11

1 1 1 1 0 1 1 0 1 0 1

Bit terslemeli mutasyonda 1 ila L arasında rastgele bir tamsayı

üretilir (RL=6) ve bu noktada bit değeri 0 ise 1, 1 ise 0 yapılır.

L=11

Page 20: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

Başlangıç popülasyonunun genellikle rastgele seçildiği daha önce ifade

edilmesine rağmen bu konuda başka yaklaşımların da mümkün olduğu

bilinmektedir. Bu yaklaşımlardan biri her birey için bir dizi popülasyon

oluşturmak ve daha sonra en yüksek performans gösteren bireyleri

alarak bir popülasyon oluşturmaktır. Alternatif olarak, yaklaşık çözümleri

bulmak için başka yöntemlerle tahminler yapılarak söz konusu algoritma

böyle noktalardan başlatılabilir. Şimdiye kadar tamsayı olmayan çok

parametreli problemlerin nasıl ele alınacağı tanımlanmıştır. Bundan

sonraki aşamada, mutasyon, seçim, çaprazlama ve elitizm

operatörlerinden oluşan işlemleri tek bir algoritmada bir araya getirilebilir.

Basit GA bu amaçla kullanılan bir algoritmadır.

20

Başlangıç Popülasyonu

Page 21: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

1. 1. 𝑙𝑀𝑘=1 𝑘

uzunluğunda rastgele binary stringlerden oluşan bir

başlangıç (g = 1) popülasyonu oluşturun. M burada bilinmeyenlerin

sayısıdır ve lk ise herhangi bir bilinmeyen olan k’ya ait binari string

uzunluğudur. Genel olarak lk ≠ lj.

2. Bilinmeyen parametreleri saptamak için, popülasyondaki her i

bireyini, zi,k, tamsayısı ile ve sonra ri,k reel sayılara dönüştürün.

3. Eldeki problem için her bir bireyi sırası ile test edin. Her bir bireyin

performansını amaçç fonksiyonunu veya uygunluk fonksiyonu (Ωi)

kullanarak daha iyi çözümlerin daha yüksek bir uygunluğa karşılık

geldiği bir fi uygunluğuna dönüştürün.

21

Basit Genetik Algoritma

Page 22: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

4. Uygunluk orantılı seçim ile bireylere ait çiftleri seçin ve Pc tek nokta

çaprazlama olasılığını uygulayın. N tane bireyden oluşan yeni

geçici bir popülasyon oluşana kadar tekrar edin.

5. Geçici popülasyondaki her bir stringin 0’larını nadiren 1’e çeviren

veya tersini yapan mutasyon operatörü uygulayın. Herhangi bir bitin

mutasyona uğrama ihtimali Pm ile gösterilir ve bu değer çok

küçüktür (ör. 0.001).

6. Eğer elitizm gerekiyorsa ve geçici popülasyon en azından elit

bireyin uygunluk değerine sahip bir bireyin kopyasını içermiyor ise,

geçici popülasyonun elit bireyini popülasyondaki her hangi bir birey

ile rastgele değiştirin.

22

Basit Genetik Algoritma

Page 23: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

7. Eski popülasyonu yeni geçici popülasyon ile değiştirin.

8. Jenerasyon sayacını birer birer artırın (örn. g = g + 1) ve G kadar

jenerasyona ulaşıncaya kadar Adım 2’yi tekrar edin.

9. Herhangi bir bitin mutasyona uğrama ihtimali Pm ile gösterilir ve çok

küçüktür (ör. 0.001).

10. Eğer elitizm gerekli ise ve geçici topluluk en düşük seviyede

uygunluğa sahip bir elit üyeden oluşan bir birey kopyası içermiyor

ise, geçici topluluğun bir üyesini elit bir üyeyle değiştirin (rastgele

olarak).

23

Basit Genetik Algoritma

Page 24: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

24

E

Uygunluk Değerlerini Bul

İlk Popülasyonu

Oluştur

Seçim Yap

GA Operatörlerini Uygula

Yeterli mi?

DUR

G=G+1

-Çaprazlama

-Mutasyon

-Elitizm

H

Basit

Genetik

Algoritma

-Kod çöz

Page 25: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

25

Basit Genetik Algoritma

clear;clc;

a=0;b=10;

gens=100;bit=10;pm=0.001;pc=0.

65;N=100;

x=[];x1=[];x2=[];x3=[];f=[];y=

[];

x=genbin(N,bit);

y=binvreal(x,a,b);

f=fitval(y);

Page 26: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

26

Basit Genetik Algoritma (Basit Matlab kod)

for g=1:gens

fprintf('g: %.0f\n',g);

x1=rulet(x,f);

x2=xover(x1,pc);

x3=mutate(x2,pm);

x=x3;

y=binvreal(x,a,b);

f=fitval(y);

end % for gener

Page 27: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

27

Basit Genetik Algoritma

[maxfit ind]=max(f);

optxb=x(ind,:);

% used to show it on the

graphics

optx=binvreal(optxb,a,b);

clc;

disp('the results:');

disp(optx);

disp(fun(optx));

% plot the graph of the

function

test11(optx)

Page 28: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

28

Basit Genetik Algoritma

%Uygunluk fonksiyonu

function y=fitval(x)

y=100*sin(10*x).*exp(-x);

ymin=min(y);

y=y+1.01*abs(ymin);

% optimize edilecek fonksiyon

function y=fun(x)

y=100*sin(10*x).*exp(-x);

Page 29: GENETİK ALGORİTMALARA GİRİŞ (III) - nedimtutkun.comnedimtutkun.com/ders_notlari/genetik_algoritmalar/notlar3.pdf · Temel Genetik Algoritma, rekombinasyon ilemi için tek nokta

29

Basit Genetik Algoritma

opt_ x= 0.1466 opt_y=85.8903