A partire da questo file in formato Ascii e' possibile ricostruire l'archivio originale.Su axal04 procedere in 2 passi. Prima passare clean con:
@cleane quindi order4 con
@order4. Il risultato finale sara' la creazione di 2 files: attr.dat di 50000 record ad accesso diretto e for093.dat di circa 35000 righe in formato Ascii. Quest'ultimo file contiene la lista dei soli sistemi "buoni" ordinati.
Il file attr.html e' stato creato dal programma order4 su axpba1. Poi il file e' trasferito su pc e zippato.
Il database e' anche disponibile in 5 file zippati di indirizzo:
http://pcba10.ba.infn.it/ufattr/select/formula1.zip fino a
http://pcba10.ba.infn.it/ufattr/select/formula5.zip.
Questi sono
stati creati su alboot dal programma creadb e quindi zippati.
Una volta unzippati su pc creano il file ufattrou che puo' essere
esaminato tramite l'applet Java Select.
Su pc:
Crea una finestra MSDOS cd .. cd jdk1... dir erase temp.out,temp.tmp,ufattr.sav,ufattr.tmp java ufattr ogni pochi giorni interrompi con CTRL-C e copia temp.out su floppy con ftp copia temp.out dal dischetto su disk$user1:[zito]ufattr.savSu axpba1:
set def vaxba0$dka100:[zito.sdev] Usare l'ultima riga di rndmar.doc per creare un file for092.dat se questo non esiste. submit ufattr/que=axpba1$batch mio ty ufattr.log (per sapere cosa succede) copy scr:ufattr.dat disk$user1:[zito]ufattr.sav dele scr:ufattr.dat;Su shift50:
set path=( . $path /usr/local/lsf/bin) cd ufattr rm ufattrou bsub -R shift < nqsjob bjobs -l (per controllare l'avvenuta sottomissione) cat fort.92 (per sapere se e' iniziato) bqueues (per sapere quanti jobs sono in coda) (quando il job e' gia' in esecuzione puoi farne partire un altro)Su axpba1:
set def disk$gruppo_1:[zito.demo.alpha] setd/node=pcba10 @select (fai un resize e compare la prima immagine) (dai s per ogni immagine interessante) (alla fine stoppa e annota l'ultimo sistema) set def disk$user1:[zito] edf ufattr.sav (elimina i sistemi guardati) (scr:tufattr1.dat contiene i sistemi salvati)Su un computer collegato a Internet:
Copia il file con le formule su $HOME/WWW/ufattr/select/ufattrou Fai partire l'applet select(copia di riserva).2: Ora bisogna ricreare l'archivio attr.dat aggiungendo i nuovi dati in coda.
L'archivio si trova su disk$user1:[zito]attr.dat,for093.dat,for094.dat,for095. dat
Invece axpba0$dkc0:[zito] contiene un backup dello stesso.
Su axpba1
set def axpba0$dkc0:[zito] dele attr.dat; copy disk$user1:[zito]attr.dat * dele for093.dat; copy disk$user1:[zito]for093.dat * dele for094.dat; copy disk$user1:[zito]for094.dat * dele for095.dat; copy disk$user1:[zito]for095.dat * dele disk$user1:[zito]attr.dat; dele disk$user1:[zito]for093.dat; dele disk$user1:[zito]for094.dat; dele disk$user1:[zito]for095.dat; set def vaxba0$dka100:[zito.sdev] copy disk$work:[zito]tufattr1.dat [zito]tufattr.dat @order2 @order3 n [Se bisogna usare la copia di pcba10 per ripristinare la copia di backup ricordarsi di copiare in Ascii for093.dat e gli altri in binario. Ma dare in seguito: SET FILE/ATTRIBUTES=(ORG:SEQ,LRL=820) attr.dat SET FILE/ATTRIBUTES=(ORG:SEQ,LRL=120) for094.dat SET FILE/ATTRIBUTES=(ORG:SEQ,LRL=228) for095.dat ]Su alboot
L'archivio si trova su $HOME/ufattr/fort.72 e fort.93. I nuovi dati vanno messi su fort.71
./direct(annota il numero delle formule aggiunte) vi fort.93 (aggiorna la prima riga incrementando i 2 numeri col numero di nuove formule) (aggiungi in coda una riga per formula aggiunta col numero della stessa)Ora fai andare ubenvenuto dando su axpba1:
set def [zito.demo.alpha] @ubenvenutoDa un pc collegato a Internet puoi usare
l'applet displayrand1(copia di riserva).Questo richiede il file ufattrdb contenente una selezione random di formule che puo' essere creata usando il programma rformula500. (su alboot) cd ufattr ./rformula500 mv fort.74 $HOME/WWW/ufattr/ufattrdb chmod 644 $HOME/WWW/ufattr/ufattrdbAltre immagini interessanti si possono generare usando il programma cicli:
set def [zito.demo.alpha] @cicli n (fai un resize) n (dai l'attrattore iniziale) c per vedere un attrattore disegnato in grandeUsando lo stesso programma e' possibile esaminare tutti gli attrattori disponibili nel database alla ricerca di qualcuno interessante:
@cicli n (occupa tutto lo schermo) y (dai il numero dell'attrattore da dove cominciare l'analisi)Al posto di y puoi usare a per avere gli attrattori ordinati ed i per avere solo quelli nella lista contenuta nel file assegnato a for055.
set def scr edf for081.dat (cancella tutto tranne la formula che serve e salvala su vaxba0$dka100:[zito]tufattr.dat) continua da 2
set def [zito.demo.alpha] @deform1 (fai un resize) (dai l'attrattore iniziale)Le immagini prodotte con l'algoritmo genetico si ottengono usando il programma cfun per la selezione e tfun per la resa finale. Le immagini scelte sono scritte su cfun.dat
set def [zito.demo.alpha] @cfun fai il resize scegli le immagini (la griglia e' 7x7 ma purtroppo la riga di sotto sul PC salta anche se va contata nello scegliere l'immagine) (procedi fino a scegliere le immagini da riprodurre in grande) CTRL-c edit cfun.dat lasciando solo le ultime 5 formule @tfun fai il resize(su alboot)
cd ufattr setenv DISPLAY pcba10:0 (fai partire il server X-window su pcba10) ./cfun fai il resize scegli le immagini (la griglia e' 7x7 ma purtroppo la riga di sotto sul PC salta anche se va contata nello scegliere l'immagine) (procedi fino a scegliere le immagini da riprodurre in grande) CTRL-c edita eventualmente fort.61 lasciando solo le ultime formule ./tfun fai il resizeE' possibile far plottare a fractint un sistema dinamico,una volta che si e' scoperta la formula Per esempio l'attrattore "chaotic shell" va scritto come shell.frm:
Chaotic shell {; Giuseppe Zito
z=pixel,c1=real(p1):
x = real(z), y = imag(z)
newx = x * x + c1*x -y
newy = x + y
z = newx + flip(newy)
|z| < 4
}
e caricato come formula in Fractint. Fractint oltre a dare la possibilita' di cambiare tavolozza, offre il modo di creare immagini fino a 2000x2000
selezionando disk come 'scheda video'.
Come ricavarsi la formula e passarla ai programmi cicli e fractint
Select attractor Attrattore 1 31 28 31 0 13 =x 2 7 *x 3 6 - -0.500242 5 18 + -0.471509 s1= 6 21 *s1 7 3 + 0.208763 11 11 /y 14 7 *x 15 10 /x 18 8 *y 20 2 +y 22 18 + -0.750641 s1= 23 21 *s1 24 12 / 0.859494 26 7 *x 28 1 +x 30 10 /x 28 0 13 =x 2 9 * 0.592010 4 12 / -0.691070 9 7 *x 11 1 +x 14 9 * -0.015975 15 6 - 0.003455 16 1 +x 18 16 =x s1= 20 1 +x 21 7 *x 22 22 /s1 23 9 * 0.937222 24 16 =x s1= 25 21 *s1
Banner {; Giuseppe Zito
z = pixel ,
c3 = -0.500242 ,
c5 = -0.471509 ,
c7 = 0.208763 ,
c22 = -0.750641 ,
c24 = 0.859494 ,
d2 = 0.592010,
d4 = -0.691070,
d14 = -0.015975,
d15 = 0.003455,
d23 = 0.937222 :
x = real(z), y = imag(z)
s1 = (x*x) - c3
s2 = (c5*s1) + c7 + y
newx = ((c22 * s2 *x)/c24 +x)/x
t1 = ((x*x*d2)/d4 +x)*d14 -d15 + x
t2 = (((x + x)*x)/t1)*d23
newy = x * t2
z = newx + flip(newy)
|z| < 4
}
END
SUBROUTINE COMPUTE134(X,Y,newx,newy)
C banner
real newx,newy
DATA IFIRST/1/
IF(IFIRST.EQ.1) THEN
c3 = -0.500242
c5 = -0.471509
c7 = 0.208763
c22 = -0.750641
c24 = 0.859494
d2 = 0.592010
d4 = -0.691070
d14 = -0.015975
d15 = 0.003455
d23 = 0.937222
IFIRST = 0
ENDIF
s1 = (x*x) - c3
s2 = (c5*s1) + c7 + y
newx = ((c22 * s2 *x)/c24 +x)/x
t1 = ((x*x*d2)/d4 +x)*d14 -d15 + x
t2 = (((x + x)*x)/t1)*d23
newy = x * t2
RETURN
END
IF(N.EQ.134) then
CALL COMPUTE134(X0,Y0,X1,Y1)
return
endif
sea 1:10000 134 ty x set break %line x step ex x ev formula dep x=formulacontrolla la formula passo a passo.
Come ricavarsi la formula e passarla al programma fractint(metodo 2 con l'uso di Java)
Antialiasing
Per provare a correggere le immagini con l'antialiasing : produci un'immagine
1600x1200, salvala premendo il tasto "Stamp";richiamala
in PSP e salvala come gif; Copiala con ftp su Netview; Su Netview usa Photoshop
per richiamare l'immagine e fare un resize ad esempio a 640x480.
Cambiare i colori
Xv su axpba1 permette di cambiare i colori uno a uno. Carica l'immagine e scegli
Coledit
Cambiare i colori con fractint
Prima di usare fractint per cambiare i colori, trasformare l'immagine
da gif interlacciata a gif noninterlacciata usando psp.Quindi caricate
l'immagine in fractint e usate il comando c e return per creare mappe di colori random.
Potete anche provare col comando l a caricare una nuova mappa
dal disco. A questo punto dando e(per edit) potete editare la tavolozza.I caratteri . e , permettono allora di far ciclare i colori con lentezza per provare ogni settore della nuova mappa. (
Potete trovare mappe interessanti caricando delle immagini fractint e quindi dopo aver date il comando e, potete salvare la mappa dando il comando s).
Per generare formule a caso sul PC con Ufattr in java
Fai partire una finestra ms-dos e dai i comandi:
cd .. cd jdk1.2beta erase temp.out java ufattrOra dovrebbe cominciare l'esecuzione. Le formule trovate sono scritte su temp.out al ritmo di circa 1 ogni milione di tentativi(alcune ore). Quando ce ne sono abbastanza:
copy temp.out ufattr.savOra fai partire ws-ftp e collegati a axpba1 copiando ufattr.sav su disk$user1:[zito]. Da quel punto in poi puoi procedere come in 1 facendo partire select,etc...
Idee su come ottenere altre immagini da una formula che ne ha gia' prodotto una
Come esplorare con Ubenvenuto le immagini ottenibili da una formula
Come archiviare un'immagine
cd ufattr;vi fort.71;./direct;vi fort.93)