Posts

Kako se kale kraljice

Još jedan problem s kojim se ljudi koji se bave umetnošću programiraju vaćaju u koštac je problem N kraljica. Na tabli N x N treba postaviti N kraljca a da jedna drugu ne jedu. I ovaj problem se može rešiti Simuliranim kaljenjem. Funkcija cilja je u ovom slučaju broj sukoba, samo za razliku od prošlog primera sa trgovcem ovde se zna da je optimalno rešenje kad je f. cilja = 0. Počentno rešenje se lako nalazi. Prvo ne sme se desti da više od jedne kraljce bude u bilo kom redu i bilo kojoj koloni. Dakle najprostije je da se poređaju po dijagonali. U mom rešenju se takvo rešenje tvikuje par puta i dobija se početno rešenje. Tvikovanje se sastoji u nasumičnoj zameni 2 kolone. Implementacija je takva da se u klasi Resenje u nizu koji se zove kraljice čuva pozicija kraljice u redu za svaku kolonu. Npr. niz [1, 0, 2] znači da se u 1. koloni kraljica nalazi u 2. redu, 2. koloni u redu 1, a u 3. koloni u redu 3 (i u Pythonu su prvi elementi niza na poziciji 0). Dakle u početnom rešenju ćemo pre...

Kako se kalio čelik

Image
Nešto mi je ovijeh dana dosadno bilo, a dokon um đavolje dvorište. Te se dovatim jedne knjige o AI algoritmima. U pa tu ima svakakve 'euristike, ovi iz Operacionih bi zinuli. Ovde ću kako budem stizao da postavljam neke algoritme. Knjiga ima neke C kodove, sad malo ko parla C, a i ti kodovi su tako odvratni i u knjizi dati iz delova i nepotpuno. Pa sam ih ja sredio u mom omiljenom prog. jeziku. Prvi algoritam je Simulirano kaljenje. Ima nešto o tome u knjizi iz Operacionih, ali to su pisali matematičari (čitaj: dosadni tipovi). Ideja je da se podražava proces kaljenja. To smo valjda učili iz Teknologije, eto neke koristi i od toga Pa kako se kali? Podigne se temperatura pa se čuka metalni predmet i izvaja u neki oblik, pa se polako 'ladi a i dalje čuka. U ovom algoritmu se prvo nađe neko najobičnije rešenje, zatim se to rešenje tvikuje (malo se promeni) i gleda kakvo je u odnosu na prethodno. Ako je bolje super, usvajamo ga, ako nije onda po nekoj verovatnoći usvaja. Jer lošij...

Zdravo svete iz Flex-a

Image
Dugo me nije bilo, zaboravio sam i kako da se ulogujem :) Ali pokušaću da od sada pa na dalje i u buduće budem vredniji. Materijala za pisanje imam dovoljno, samo volje i vremena da nađem... A vidim da su i drugi blogeri zaspali i da nisam najgori od sve dece :) Čitao sam Misliti na javi 4. izdanje i u poglavlju o GUI-u se pominje nekoliko alternativa za SWING. Najviše me je zainteresovao Flex kao flash frontend za javu, i ne samo to, kao zgodna stavrčica za Web i prilika da se podsetim JavaScript-a, prvog jezika kog sam naučio posle COBOL-a :) Delovao je tako osvežavajuće. Doduše Flex koristi malo drugačiji JS pod nazvom ActionScript, a ni JS nije više igračka kao pre 8 godina. Vraški mi je bilo teško naći link za sam Flex SDK. Mnogo kliktanja i paženja da se ne skine Flex Builder, što ti Adobe uporno pokušava uvaliti. Za one koji bi da se ne smaraju i odmah skinu SDK link je http://download.macromedia.com/pub/flex/sdk/flex_sdk_3.zip One file to rule them all, odnosno isti zip za Li...

Zalazak izvršnog koda

Svi znamo kako je tekao razvoj programiranja i programskih jezika, od mašinskog koda, preko asemblera pa do današnjih viših programskih jezika. Svaka generacija se naslanjala na prethodnu i svodila je na najmanju moguću meru. Danas prisustujemo još jednoj smeni. Jezici čiji se kod kompajlira u izvršni polako bivaju skrajnuti. Na TIOBE listi od 10 prvoplasiranih jezika samo 3 su klasična. Pri tom je moguće da delphi sklizne sa top 10 liste, a java već godinama vodi. Šta je uzrok tome? Sve je u parama prost je odgovor. A pravi odgovor je malo složeniji. Glavni razlog je sniženje troškova razvoja i održavanja. Da bi jezik bio produktivniji mora da se izdigne iznad mašine, da postvi debeo izolacioni sloj. Pri tom taj izolacioni sloj dovodi do još jednog efekta a to je lako postizanje platformske nezavisnosti što su neki jezici postvili kao cilj (npr. java) a drugi su bili pragmatični pa su se poveli onom: sve može, a i ne mora, kao u pythonu. Zato se već godinama nije pojavio novi jezik a...

3 džepna linuxa

Image
Juče sam se igrao sa 3 mala linuxa, ali moćna kao uvek: Damn Small Linux verovatno najmanji i najmanje zahtevan linux uopšte. Iako je mali ima sve što mu treba. Automatski mi je prepoznao mrežnu karticu i konfigurisao mrežu. I ostala hardverska podešavanja je uradio automatski. Mana je što ne podrzava NTFS sistem ili bar meni nije pošlo za rukom da uradim mount. GUI je Fluxbox, što će reći da nije lepotica. Kernel je generacije 2.4.* Pozitivna stvar je i to što preko Knoppixa ima Debian korene a to znači da sa apt-getom nema problema. Veličina mu je samo 49 MB a autori tvrde da im je gornji limit 50 MB. Podiže se i na 486DX mašinama sa 16 MB RAM. Postoji i embedded izdanje koje pomoću QUEMU VM može da se vrti i na Win i na Linux OS i to sve radi jedna ista verzija! Što je još neverovatnije uspeli su da stave još jedan window manager JVM koji koristi i Puppy linux. Sledi slika DSL sa Fluxbox wm: Austrumi 1.2: poslastica iz Letonije. Automatski je podesio sve osim mreže. A za to korsiti ...

Prvo pa muško, pa se zove Persa :)

Svečano otvaram blog, nek nam je živ i zdrav! Šta će svega na njemu biti, ko to zna. Važno je da se krenulo, pa će se stići vremenom.