Mitähän mahtaa kuulua Prologille ja Lispille nykyään, vieläkö niitä käytetään vai onko suuntaus muun tyyppisiin A.I. kieliin?
Tekoälykielet nykyään?
missä luuraa
262068
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 26
Vanhimmat
Ihme juttuja, tekoäly? heheh :D
Oli mikä saatanan kieli tahansa, kaikki kääntyy loppujen lopuksi vain nolliksi ja ykkösiksi(!) On/Off! Ei siinä tekoäly ole viisaampaa tai tyhmempää, millä tahansa kielellä koodaat ohjelmasi :D
Kone on aina vain kone, millä tahansa kielellä koodaatkin, piste!
Tämä just kuulostaa joltain 1980-luvun jutulta, jolloin ennustettiin, että kielenkääntökone on realiteettia 1990-luvulla :)
"Ei siinä tekoäly ole viisaampaa tai tyhmempää, millä tahansa kielellä koodaat ohjelmasi :D "
Vertaappa esim prologia ja c:tä, montakoko riviä joudut kirjoitamaan saadaksesi saman toiminnallisuuden.
http://en.wikipedia.org/wiki/Prolog
heksakoodiohjelmointiasi ja jätä asiantuntijalausuntojen antaminen muille.
"Vertaappa esim prologia ja c:tä, montakoko riviä joudut kirjoitamaan saadaksesi saman toiminnallisuuden."
Mikä kriteeri se on??? Pitäisikö tekoälyohjelmien olla jotain salakoodia?
Mitä salakoodia ?
Maailmassa on n-kappaletta ohjelmointikieliä eri asioita varten, joissa joidenkin asioiden teko on helpompaa koska ne on suuniteltu sitä varten.
Otetaampa esim, olio ohjelmoiti, voi tehdä sitä C:llä mutta helpompaa se on jos kieli tukee sitä esim. c , java etc.
Tämä oli pointtini. Jos teet pienen pätkän ei ehkä ole merkitystä millä sen tekee.
Ja erilaisia syntakseja on paljon vaikka koodi ei näytä miltään C:n sukulaiselta ei se tee siitä huonoa.
"Vertaappa esim prologia ja c:tä, montakoko riviä joudut kirjoitamaan saadaksesi saman toiminnallisuuden."
Kommentti oli
"Ei siinä tekoäly ole viisaampaa tai tyhmempää, millä tahansa kielellä koodaat ohjelmasi :D "
Miten vastauksesi liittyy kommenttiin? Väitätkö, että prologilla ja c:llä voi toteuttaa eri asiat? Viestistäsi päätellen et, vaan liu'uit toiselle maaperälle ja puolustelit itseäsi siellä. Tyypillinen kotikoodarin tapa.
"Ja erilaisia syntakseja on paljon vaikka koodi ei näytä miltään C:n sukulaiselta ei se tee siitä huonoa."
Eipä tosiaan.
"Otetaampa esim, olio ohjelmoiti, voi tehdä sitä C:llä mutta helpompaa se on jos kieli tukee sitä esim. c , java etc. "
Mutta C voi jo (vähän hankalasti) tehdä mitä vain.
Prolog-ohjelmoinnissa ajattelutapa on täysin erilainen kuin C :ssa. C -ohjelmoija keskittyy siihen, miten jonkin asian saisi ratkaistua muuttujien arvoja muuttelemalla, silmukoita kiertämällä ja funktioita kutsumalla. Prolog-ohjelmoija sen sijaan keskittyy kuvaamaan, millainen ratkaisu halutaan ja/tai miten ratkaisun ympärillä oleva maailma toimii.
Sekä C :lla että Prologilla voi kirjoittaa ohjelman, joka osaa derivoida. Erästä olennaista etua Prologissa kuvaa mielestäni parhaiten se, että sama Prolog-ohjelma osaa myös integroida. C -ohjelmaan integroinnin lisääminen sen sijaan vaatii lisätyötä.
Prolog on hyvä kieli tietynlaisiin ongelmiin, mutta mitään muita ongelmia sillä ei sitten pidäkään yrittääkään ratkoa. Siksi allekirjoittaneen mielestä olisikin mukavampaa nähdä nykyistä enemmän prologin toiminnallisuuden tarjoavia kirjastoja tavallisissa ohjelmointikielissä.
"C -ohjelmoija keskittyy siihen, miten jonkin asian saisi ratkaistua muuttujien arvoja muuttelemalla, silmukoita kiertämällä ja funktioita kutsumalla."
Käytännössä ei varmaan noin matalalla tasolla tarvitse ohjelmoida, jos olioita osaa hyödyntää. Mutta vaatii kirjastoja. Tavallisissa kielissä olen käyttänyt RegExiä. Tosin ne ei sulaudu erikoisen hyvin kieleen. Prologiin voisi sulautuakin?
Prolog voisi olla näppärä laajennus kieleen kuin kielen vähän samaan tapaan kuin SQL tms. tietokantatuki tai vaikka yhdistettynä tietokantatukeen... asiaa pitääkin tuumata.
"samaan tapaan kuin SQL tms. tietokantatuki"
Microsoftin LINQ-projektisssa tietokantakyselyt on sisäänrakennettu itse kieleen. Säännöt ja kyselyt on tulee...
Siellä oli kohta "...saadaksesi saman toiminnallisuuden".
Jonka jälkeen perustelua miksi lause:
"Ohjelmointi on välineurheilua".
Pitää paikaansa.
Niin missä kertomasi kommentti esitetiin?
Mutta mitä kommenttia tarkoitit ?
"Välineurheilu" perustelu on toisessa viestissä, eihän sitä muistanut, sori.
Ja pikku vinkki: käytä samaa nimimerkkiä että tiedän kenen kanssa puhun.
Ei Lisp ole tekoälykieli.
Lispiä käytetään yhä ahkerasti, mutta se vaatii huomattavasti taitoa.
http://www.paulgraham.com/avg.html
Uusi lupaava suuntaus on ML-perheen funktionaaliset vahvasti tyypitetyt kielet. Haepa tietoa kielistä nimeltä Standard ML, OCaml, Haskell, F# tai Scala. Tosin näistä viimeinen ei ole ihan ML-joukkoon kuuluva, vaan etäisesti C-kielen tapainen ulkonäöltään. Se on kuitenkin paljon kehittyneempi kuin ns. valtavirran kielet.
Näiden kielten parissa tehdään nykyään kiinnostavinta tutkimusta. Uudet ideat mm. seuraavassa C -standardissa (joita voi sitten joskus 2010-luvulla ehkä käyttää) ovat useimmat peräisin näistä kielistä.
Voit opetella tulevaisuuden kielen jo tänään, jos valitset ML:n :-)
"Uudet ideat mm. seuraavassa C -standardissa"
Niin mitä ne ovat?
Etupäässä varmaan jotain nimiavaruuksiin eli laajempiin hierarkioihin liittyvää määrittelyä. "Nimiavaruuspakkausten" vuorovaikutussääntöjä, periytymistä, interfacea, jne.
vb:llä voi tehdä kaikkea, miksei tekoälyäkin?
Toteuta VB:llä vastaavat toiminnot kuin Maximassa (tehty Lispillä):
http://maxima.sourceforge.net/
Muutama simppeli esimerkki:
http://www.hippasus.com/resources/symmath/maximasym.html
Basicissa ei muuttujia edes tarvitse declaroida eikä alustaa: Nopeuttaa mukavasti "kokeellisessa ohjelmoinnissa".
Ai sitä on juuri koulussa tutustuttu tähän maximiin ? ;) Mutta asiallisesti ottaen, jos ei oma polla osaa tällaista basicilla vääntää, ei se tarkoita etteikö joku toinen osaisi.
Kenelle se "läskipää" sitten tulikaan?
Prologia taidetaan ainakin käyttää kielentutkimuksessa ja kieliteknologian sovelluksissa. Onko se nyt sitten sen kummempaa tekoälyä kuin mikään muukaan ohjelmointi...
Lispinsukuiset kielet ja prolog ovat erinomaisia sellaisessa "tekoälyohjelmoinnissa", joissa älyn toiminnallisuus on joko täysin tai melkein täysin kovakoodattu (molemmat kielet kyllä tukevat itsemodifioivaa koodausta, mutta sen käyttö on rajoitettua). Sen sijaan, jos sovelluksessa erotetaan "engine" ja osaaminen (tietämys) tiukasti toisitaan, eli osaaminen esitetään datana, jota voidaan oppimisprosesseilla lisätä ja muuttaa, voidaan "tietämys" esittää prolog- ja lisp-syntaksien lisäksi vaikka C :n datarakenteina, esim semanttisten verkkojen ym. muodossa.
Akateemisissa kehitysprojekteissa (joiden sorsia netistä löytyy) näytetään käytettävän pythonia ja javaa viimeksikuivailluissa, oppivissa järjestelmissä. Loppusovelluksissa, esim militarikäytössä oletan C :n olevan pääkieli.
Aika erikoinen kommentti, että "molemmat kielet kyllä tukevat itsemodifioivaa koodausta, mutta sen käyttö on rajoitettua", koska lisp on nimenomaan yksi ainoista kielistä jossa itsemodifoiva koodi on luonnollinen osa kieltä. Siis koko lisp-ohjelmahan on vain yksi monihaarainen puurakenne! Siihen vaan pistää quoten eteen, niin sen voi tallettaa muuttujaan sellaisenaan. Toki saman asian voi tehdä myös esittämällä data erikseen, mutta hieman turhaahan se on.
Pythonia ja javaa käytetään, koska ne ovat helppoja kieliä niille opiskelijoille joilla sitä ojankaivuutyötä (koodausta) teetetään. Jos oikeasti haluttaisiin tehdä homma paremmin, kannattaisi käyttää siihen paremmin soveltuvia kieliä kuten lisp.
Mathematicalla pystyy ainakin toteuttamaan tekoälyjärjestelmiä.
http://trustbus.weebly.com/1/post/2010/10/mathematica-8aan-gpu-kiihdytys.html
Tekoäly on itseoppivaa, sen pitää pystyä vähintään (?) samaan kuin ihmisenkin. Siispä tekoäly opettelee ihmisten kielet, ja lukee sekä analysoi runsaasti ihmisten kirjoittamaa tietoa.
Google ja Microsoft ovatkin antaneet tekoälyjensä tehtäväksi tutkia laajasti kirjastoja ja luoda niiden pohjalta laajat tietokannat.
Tämän opiskelujakson jälkeen tekoälylle voidaan antaa tehtäviä ja kyselyitä selväkielisellä puheella tai kirjoituksella, kartuttaen samalla edelleen tietojaan.