» »

Digitalna evolucija

Digitalna evolucija

««
7 / 29
»»

ciki57 ::

Mal smo se prenaglili, prej sem pri testiranjih nekaj zaj...
zgleda da dela samo pri 2*2 in 3*3....
:'( :'( :'(

Thomas ::

Ja ... too good ... pol pa ni. Sem žalosten tudi jest.

Samo bi blo res čudno, če bi za splošen primer obstajal kvadratni algoritem.

:|
Man muss immer generalisieren - Carl Jacobi

noraguta ::

:'( jaz tud

ciki57 ::

amapak tudi pri višjih n-jih izračuna kar precej elementov pravilno, samo ne vseh. Spodaj je rezultat pri matriki 10x10. Samo 13 elementov od 100 je napačnih!

350,350
353,353
356,356
359,359
362,362
365,365
368,368
371,371
374,374
377,377
3650,3650
21995,21995
22140,22140
22285,213
napaka!
22430,214
napaka!
22575,215
napaka!
22720,216
napaka!
22865,217
napaka!
23010,218
napaka!
23155,219
napaka!
220,220
221,221
222,222
223,223
224,224
225,225
226,226
227,227
228,228
229,229
230,230
231,231
232,232
233,233
234,234
235,235
236,236
237,237
238,238
239,239
240,240
241,241
242,242
243,243
244,244
245,245
246,246
247,247
248,248
249,249
250,250
251,251
252,252
253,253
254,254
255,255
256,256
257,257
258,258
259,259
260,260
261,261
262,262
263,263
264,264
265,265
266,266
267,267
268,268
269,269
270,270
271,271
272,272
273,273
274,274
275,275
276,276
277,277
278,278
279,279
280,280
281,281
282,282
283,283
284,284
285,285
286,286
287,287
288,288
289,289
139740,30596
napaka!
140685,30869
napaka!
292,292
293,293
143520,31688
napaka!
144465,31961
napaka!
296,296
297,297
145410,32234
napaka!
146355,32507
napaka!

Thomas ::

Zanimivo ... zelo zanimivo .... Nekaj imaš kljub vsemu - očitno! :)
Man muss immer generalisieren - Carl Jacobi

ciki57 ::

no ja, kukr kdaj...
prejle sem mel srečo, probal še enkrat na drugi matriki, pa jih je blo več kot pol narobe. :\

Thomas ::

Tud pol nekaj je. Je pa res, da to področje množenja matrik zahteva še precej igranja.

Me prav zanima, če je najboljši algoritem že odkrit, ali še ni. Pa kako dober je.
Man muss immer generalisieren - Carl Jacobi

Thomas ::

Po celi noči računanja na cikijevem osnovnem algoritmu - n^2,8 imamo. Toliko, kot je že do sedaj znan najboljši rezultat. Seveda je treba dati n do kar velike številke, da je tisti "Approximate algorithm efficeincy" kolikor toliko natančen.

Razen tega, ne splača se dimenzionirati tabelo več, kot je nujno potrebno. V tem primeru 3*n^2.

:)
Man muss immer generalisieren - Carl Jacobi

ciki57 ::

Če maš iterativen algoritem zahtevnosti O(n^2.8) je to že super, ker kolikor jaz vem je drugače tisti znani algoritem rekurziven.

Thomas ::

Ja, nekaj je že.

Sicer pa mislim, da se je treba zadeve lotiti tako, da optimizira najprej za 2*2, potem za 3*3, potem za 4*4 ... in tako naprej. Potem se odločiš za optimalni algoritem, glede na dimenzije matrik.

Gremo zdej še malo popravit nekatere zadeve v Critticallu še! ;)
Man muss immer generalisieren - Carl Jacobi

ciki57 ::

A bi se dalo narediti, da se algoritme nebi optimiziralo samo glede na hitrost, ampak tudi glede na pravilnost.
Recimo pri sortiranju: bolj pravilen je tisti algoritem, kjer je na koncu več elementov na pravem mestu.

Kaj takega bi recimo prišlo prav pri prepoznavanju govora ali OCR programih.

Thomas ::

Tri dodatne opcije bodo v verziji 2.

- da se razlikuje v čimmanj točkah

- da je kumulativa razlik kar najmanjša

- da je kumulativa razlik kar najmanjša z majhno deviacijo

:)
Man muss immer generalisieren - Carl Jacobi

ciki57 ::

Kaj je fora, da so ene črte na timelajnu rdeče?

Zdajle se mi je zgodilo nekaj čudnega. En algoritrem sem optimiziral na 86%, nato pa je stvar skočila NAZAJ na 100% (rdeča črta) in se nadaljevala od tam naprej.

Thomas ::

Pomeni, da je našel (random) data dependent optimizacijo in se vrnil (na izhodišče), da ne bi več hodil po tem tankem ledu. :)

V okviru zadanih možnosti za dato, mora biti program data independent, izven okvirov pa je lahko tudi data dependent.

Če daš sortu naprimer sortati samo nule in ene, mora output znati posortati vse kombinacije 0 in 1, ne pa nujno tudi kakšnih dvojk zraven.

:)
Man muss immer generalisieren - Carl Jacobi

ciki57 ::

Nevem kako lahko najde data dependant optimizacijo, če je input array 30ih naključnih števil od 1 do 10000?

Pa pr temu algoritmu se ful pogosto dogaja, samo da se malo optimizira (za okoli 10%) skoči nazaj na 100.

Thomas ::

Tudi jest kar nisem mogu verjet kakšen mojster je za izkoriščanje prednosti posameznih dat.

Potem smo pa rekli - Če si pa tko brihten, pa samega sebe kontroliraj, kdaj si v ofsajdu!. To nama je sicer vzelo en mesec dela - ampak zdaj se nadzoruje in po dovolj dolgem času se zanesljivo zbalansira.

Kaj pa je in kaj pa ni data dependence, je pa spet matter of a degree.

Daljši je program, lažje bo data dependent. Toda ko ima toliko inputa, da ga je v bitih bistveno več kot programa samega, bo v okviru gabaridov v začetku zadane date - DI. Najmanj.

:)
Man muss immer generalisieren - Carl Jacobi

Mercier ::

Čestitam za splavitev programa! :)


Robustna zadeva, če mu oni .wav zbrišem, pa sistemski zvočnik piska. :D

A da dela skrinšote je OK?

OwcA ::

Ko smo ravno pri zvoku, ali bi lahko bilo to v naslednji verziji izklopljivo, kajti tisti "plink" lahko človeka pošteno prestraši. ;)
Otroška radovednost - gonilo napredka.

Thomas ::

@Saša

Hvala! :8)

> A da dela skrinšote je OK?

Kaj točno misliš s tem?

@OwcA

$sound off v inputu reši ta problem.

:)
Man muss immer generalisieren - Carl Jacobi

Mercier ::

>> A da dela skrinšote je OK?

>Kaj točno misliš s tem?

tole

darh ::

najbrž fora z obremenjenostjo proca.
Excuses are useless! Results are priceless!

Thomas ::

Ni uspel obnoviti/skreirati ekrana, pač pa je dobil iz memorije sliko nekega drugega okna.

Katere Windowse imaš?

:\
Man muss immer generalisieren - Carl Jacobi

Mercier ::

Sem mislil, da je le output v datotekah in da pač veste o čem govorim. (dvignil rit in probal na drugem računalniku w2k, kjer dela lepo)

Na tem je problem:

w2k as (Build 5.0.2195, Service Pack 3). Sem ustavil vse omembe vredne servise, ampak ni nič bolje. Ne verjamem, da je procesor, ker reč ni kaj obremenjena. Niti OS IMHO ni. Imam pa ono intel-ovo našvasano grafično (extrem grafic, al kako že rečejo), LCD zaslon, pa probleme z nativno resolucijo. Stavim, da je to.

Thomas ::

Aha ... no potem bom dal glavo v pesek, in se delal, da ni nič narobe! :D
Man muss immer generalisieren - Carl Jacobi

Mercier ::

Bad news

Z istim računalnikom ne dela (slika) tudi na CRT monitorju. Še kdo s to kartico? (al bo treba na kakih lamerski forumih iskat :)

Intel(R) 82845G Graphics Controller

CaqKa ::

zadeva z monitorjem nima veze.. kupi drugo grafično.. nekaj kar ni že x let na odpadu.

Mercier ::

S CRT-jem lahko probaš razne nastavitve grafične, ki jih LCD ne prebavi, ampak veze pa res nima.
Grafična je pa za svoje potrebe povsem zadovoljiva. (razen v izjemnih situacijah (amd meltdown) računalnik nima monitorja)

Bom pa enkrat te dni imel install fest, pa če kaj pomeni, lahko še na ta računalnik dam kakšen drugi OS. (lahko recimo izločimo software, če ne bo delalo) Thomas?

Thomas ::

Hja ... vedno me je zanimalo, kakšen procent povprečno, ne prebavi kakšnega programa - povprečno.

Tako da si še nisem na jasnem, kje je napaka. Lahko da je na tej strani - prav lahko.

:)
Man muss immer generalisieren - Carl Jacobi

Gandalfar ::

Thomas: pomojem se critticall prevec posveca racunanju in manj temu, da se pogovarja z windowsi... bom probu izbrskat primer kode, ki se s tem ukvarja..

Thomas ::

Gandalfar,

To bi utegnila biti kar taprava diagnoza ja. Če se Windowsi kmalu ne oglasijo, gre Critticall pač računat svoje in se ne sekira preveč, če Windowsi ne pokažejo kar naj bi.

:D
Man muss immer generalisieren - Carl Jacobi

Gandalfar ::

Hmm.. ne .. windowsi se pogovarjajo s critticallom ampak critticall jim ne odgovarja, ker je prevec zaposlen z racunanjem .. ali delas s threadi?

Thomas ::

Tako nekako ja. To zrihtat je ena ne najvišja prioriteta. Zlasti še, ker na večini mašin dela OK.

:)
Man muss immer generalisieren - Carl Jacobi

Gandalfar ::

Mogoce sem zgresil ampak v Delphi je dobro vsake toliko casa poklicat funkcijo: Application.ProcessMessages, da ti zrita te stvari, ce se tvoja aplikacija ukvarja s cim drugim

Thomas ::

Še nisem vidu Delfija v življenju.

No, bomo se pa temu problemčku v prihodnosti vsekakor posvetili.

:)
Man muss immer generalisieren - Carl Jacobi

Alec999 ::

Tomas v kermu progiju si pa programeru? Drgac si pa res dobr naredu .. edin kokr je ze blo omenjen ... "Pavza" "Stop" bi zlo prou prsla. In pa ena malenkost k njbrz zlo mal folx-a mot ... un graf levo zgori .. k gre enkrat tok naprej zacne pol za nazaj brisat .. to se mi zdi skoda da se pol neda celotnega grafa pogledat za nazaj (mogoce z drsnikom) :(

Thomas ::

Zdaj, danes, jutri in ta teden se ravno dela na nekaterih teh predlogov.

Shift bitov je dodan, abs je dodan, 8 tabel je možnih ...

Compiler pa dokončno niti še ni izbran. :)
Man muss immer generalisieren - Carl Jacobi

asPeteR ::

->8 tabel je možnih ...

Ok, osem razlicnih tabel ... Kaj pa glede dimezionalnosti? Kako je s tem? Se vedno podpira samo eno dimezijo? Al bos mal popustil? ;)
http://blog.stegnar.com

Simko ::

Sam tudi najbolj pogrešam gumba Stop ter Pause...

Kaj pa kakšne advanced nastavitve? Število generacij, % mutacije ipd...?

Thomas ::

> Se vedno podpira samo eno dimezijo? Al bos mal popustil?

Tukaj ne morem popustiti. Razen če bi se naredil predkokonverter iz C++ multidimenzionalnih tabel v "strict C". Mutidimenzionalne tabele imajo hidden operacije množenja in deljenja. Zato.

Tak konverter, se bo naredil. Kdaj, odvisno od tega, kako hitro se bo ta projekt širil po svetu.


> Sam tudi najbolj pogrešam gumba Stop ter Pause...

Se razmišlja to, ja.


> Kaj pa kakšne advanced nastavitve? Število generacij, % mutacije ipd...?

Se bo razmišljalo ... :)
Man muss immer generalisieren - Carl Jacobi

Simko ::

No, da se le razmišlja :P

Drugače pa čestitke tebi in tvoji življenski sopotnici, sklepam ;)

Thomas ::

Gumbka sta.

Ampak vse našteto se sedaj testira.

:)
Man muss immer generalisieren - Carl Jacobi

snow ::

Nek idejni konverter multi- v eno dimenzionalne tabele sem napisal par strani nazaj.

Gumbki... mnja. X je dost.

Console power! :))

...double oz. float pride?
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

Zgodovina sprememb…

  • spremenilo: snow ()

Thomas ::

> Nek idejni konverter multi- v eno dimenzionalne tabele sem napisal par strani nazaj.

Ja, tako nekako bi šlo, ja. Drži.


> Console power!

Samo manj kot 5% CPU se zgubi za grafiko. Tako da to ni zelo hudo.

> ...double oz. float pride?

Ja, pride. V verziji 2 šele.

:)
Man muss immer generalisieren - Carl Jacobi

BorisJ ::

in kdaj bo ta 2 verzija narejena?

Thomas ::

Oceno bom dal danes teden. :)
Man muss immer generalisieren - Carl Jacobi

asPeteR ::

Thomas:

Kaj pravis na tole:;)



No, zdele mal testiram novega intelcka in moram rect da me lepo preseneca. Namrec s pomocjo tehnologije HTT lahko laufam dva criticalla ISTOCANO, prakticno s polno hitrostjo procesorja 3.2GHz na 1.06MHz PSB!!

Kako pa kej napreduje druga verzija?

Zdej lahko predlagam se naslednji feature. Podporo vecim procesom.

8-)
http://blog.stegnar.com

Zgodovina sprememb…

  • spremenil: asPeteR ()

Thomas ::

Na tole pravim - zelo lepo! :)) 8-)

Druga verzija bo pravzaprav nulta. Tako bomo rekli. Napreduje pa tako, da bi morala biti kmalu online. Do konca tedna že, če ne bo šlo kaj narobe.

Predlog je pa vzet na znanje! ;)
Man muss immer generalisieren - Carl Jacobi

Thomas ::

Mnja. Zadevo (Critticall) smo updatali in razšurkali do včeraj zvečer. Potem smo mu dali čez noč premišljati tisti jetijev BF algoritem za GCD. (Največji skupni deljitelj). Zjutraj (še ponoči pravzaprav) smo dobili takle rezultat (ki rabi 0,4% korakov od začetnega BF, za pare do 1000):

int number1=0;int number2=0;int gcd=0;int zero=0;
gcd =number2;
number2=number1%number2;
while (number2!=zero) {
number1=gcd%number2;
gcd=number2 - number1;
number2=number1%gcd;
}


Potek je takle:

step0 : gcd= 0 number1=35280 number2=15015

step1 : gcd=15015 number1=35280 number2=15015 gcd=number2
step2 : gcd=15015 number1=35280 number2=5250 number2=number1 % number2

pass1 : gcd=15015 number1=4515 number2=5250 number1=gcd % number2
pass1 : gcd=735 number1=4515 number2=5250 gcd=number2 - number1
pass1 : gcd=735 number1=4515 number2=105 number2=number1 % gcd

pass2 : gcd=735 number1= 0 number2=105 number1=gcd % number2
pass2 : gcd=105 number1= 0 number2=105 gcd=number2 - number1
pass2 : gcd=105 number1= 0 number2= 0 number2=number1 % gcd


------------------------------------------------------------------------------------

Standardni algoritem za GDC pa zgleda malenkost drugače:

while (number1 !=0)
gcd =number2 % number1;
number2 =number1;
number1=gcd;
wend
gcd =number2;


Potek standardnega je takle:

step0 : gcd= 0 number1=35280 number2=15015

pass1 : gcd=15015 number1=35280 number2=15015 gcd=number2 % number1
pass1 : gcd=15015 number1=35280 number2=35280 number2=number1
pass1 : gcd=15015 number1=15015 number2=35280 number1=gcd

pass2 : gcd=5250 number1=15015 number2=35280 gcd=number2 % number1
pass2 : gcd=5250 number1=15015 number2=15015 number2=number1
pass2 : gcd=5250 number1=5250 number2=15015 number1=gcd

pass3 : gcd=4515 number1=5250 number2=15015 gcd=number2 % number1
pass3 : gcd=4515 number1=5250 number2=5250 number2=number1
pass3 : gcd=4515 number1=4515 number2=5250 number1=gcd

pass4 : gcd=735 number1=4515 number2=5250 gcd=number2 % number1
pass4 : gcd=735 number1=4515 number2=4515 number2=number1
pass4 : gcd=735 number1=735 number2=4515 number1=gcd

pass5 : gcd=105 number1=735 number2=4515 gcd=number2 % number1
pass5 : gcd=105 number1=735 number2=735 number2=number1
pass5 : gcd=105 number1=105 number2=735 number1=gcd

pass6 : gcd= 0 number1=105 number2=735 gcd=number2 % number1
pass6 : gcd= 0 number1=105 number2=105 number2=number1
pass6 : gcd= 0 number1= 0 number2=105 number1=gcd

step1 : gcd=105 number1= 0 number2=105 gcd=number2



Kot vidite, je razlika očitna.

Trenutno gledamo, če je kje na netu ta Critticallov algoritrem že objavljen. Preden updatamo:
Man muss immer generalisieren - Carl Jacobi

asPeteR ::

Uau! Neverjetno! Res OBCUTNA razlika v hitrosti!

Pravis, da je tole zglumil "ta nou Critticall", si mogoce tuti testiral z "starim"? Dobimo isto?

Ali lahko objavis listo sprememb pri ta novemu Critticallu?
http://blog.stegnar.com

Thomas ::

Tastari Critticall bi tudi verjetno enkrat prišel do tega rezultata, vendar če se ne bi v urah ali dnevih ki bi bili za to potrebni, razsul zaradi bugov, ki jih je vseboval.

Tanovi do sem pride v par urah iz jetijevega BF algoritma.

Od tega standardnega, ki ga je net poln, je cca dvakrat hitrejši. Tisto odštevanje je očitno dobra inovacija. >:D

Pride zadeva (Critticall 1.002 kmalu ven in tastari bo obsoleten.)
Man muss immer generalisieren - Carl Jacobi
««
7 / 29
»»


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Najhitrejši programski jezik? (strani: 1 2 )

Oddelek: Programiranje
757750 (5570) Senitel
»

Funkcija z logičnimi operaterji.... (strani: 1 2 )

Oddelek: Programiranje
905567 (4913) CaqKa
»

Petaflopsu naproti (strani: 1 2 3 )

Oddelek: Novice / Procesorji
1058873 (8873) Marjan
»

cene permutacij help please

Oddelek: Programiranje
262076 (1683) Sergio
»

kako definirtati prastevilo

Oddelek: Programiranje
143799 (3604) ooux

Več podobnih tem