surowa wersja barokowego s.a. gotowa

0 views
Skip to first unread message

Wlodzimierz Holsztynski

unread,
Jul 20, 2007, 11:48:04 PM7/20/07
to Liczby barokowe
Spieszę się, więc krótko. Program można już
używać. Zdebuggowałem. Wciąż mogą się
pokazać przykre niespodzianki, ale nic
już zasadniczego. Za kilka godzin, jeżeli
energii mi starczy, to puszczę go na sensowny
input. Na razie sprawdziłem tylko dla testowania,
na trywialnych.

Do zrobienia jest wciąż sporo nawet bez zasadniczego
ulepszania, a tylko sprawy codzienne:

(0) Rozdzielić i/o ze standartdowego na kilka:
input-plik, standard input, otput-plik, standard
output, log-output (sprawozdanie detaliczne
na bieżąco), stderror -- teraz mam całe i/o jako
standardowe, co nie jest wygodne dla nikogo.

(1) Wprowadzić szczypłe lub nawet chude TWRy.

(2) Mam 2-stopniową funkcje kary, a warto chyba
wprowadzić 3-stopniową: obecn ie najpierw
rozpatruję liczbę niedorekomendowanych liczb
pierwszych; następnie totalne niedorekomendowanie
sumaryczne po wykładnikach. Można rozpatrywać
też po prostu sumę wykładników konfiguracji
(kandydata na baroka) minus sumę rekomendacji
danych przez tę samą konfigurację. Muszę
wkleić post o stopniowych "karach", tak jak je
używam, versdus zwykłe podejście, gdzie kara
jest zwyczajnie liczbą rzeczywistą, i na tym sprawa
się konczy.

(3) Chcę dodać redukowanie konfiguracji do
(chudych/szczupłych) TWRów. Obecnie redukuję
tylko bazę. Ruchy niech wybierają konfiguracje
nie oglądając się na TWRy, ale przy dobrych konfiguracjach
można sprawdzić na boku ich redukcje do TWRów, bez
zmieniania s.a.trajektorii.

(4) Powinienem dodać etap zamrożony, kiedy to na
koniec, po zakończeniu s.a. (gdy temperatura
osiągnie absolutne zero), jesscze się szuka
systematycznie lokalnego minimum.

Coś jeszcze siedziało mi w głowei, ale się spieszę.

***

Obecnie ruchy wprowadziłem następująco:
konfiguracja (wierzchołek) ma wykładniki vertex[i],
0 \< i < supp, gdzie supp jest liczbą liczb
pierwszych przestrzeni konfiguracji (po zredukowaniu
do TWR). Stworzyłem ciągi (arrays) o wymiarach:

total := supp + Sum (vertex[i] : 0 \< i < supp)

Myślcie o ciągu kolejnych potęg kolejnych liczb
pierwszych. Powiedzmy, że chodzi o bazę TWR,
odpowiadającą liczbie 360 = 2^3 * 3^2 * 5. Wtedy
total = 8, bo mamy potęgi:

2^0 2^1 2^2 2^3 3^0 3^1 3^2 5^0 5^1

Wprowadziłem ciągi logp[total], rootp[total]...

rootp[i] -- liczba pierwsza będąca podstawą i-tej potęgi

logp[total] -- wykładnik i-tej potęgi

Na przykład

rootp[7] = 5, logp[7] = 0
rootp[8] = 5, logp[8] = 1

***

Niestety, muszę biec, na razie, potem napiszę więcej,

pozdrawiam,

Włodek

Reply all
Reply to author
Forward
0 new messages