Sziasztok!
Az elso kishazi megoldasahoz lenne szuksegem segitsegre.
Addig szepen mukodik a program, hogy egyetlen formula
kielegithetoseget illetve az ehhez szukseges behelyettesiteseket
megadja.
A gondom olyan esetben van, amikor
sat(..formula1..), sat(..formula2..) ...
alaku kerdeseket teszunk fel. Valahogy ugy tunik, hogy a formula1 es
formula2 valtozoit belso abrazolasban mas-mas nevvel latja el. (Tehat
pl. formula1-beli A-bol _409 lesz, formula2-belibol pedig _4312.)
A feladatot a CLP MiniNat mintajara szerettem volna megoldani, egy az
ottani kiertel-hez teljesen hasonlo pedikatumom van (calc). Ennek
fejkommentje:
% calc(Kif,E,Cel,N)
% Kif kifejezest erteket E-ben eloallito cel kerul a Cel-ba.
% N-rekurzio melysege (csak nyomkovetes miatt van/lehet ra szukseg)
A sat eljarasom ezt hivja meg, majd vegrehajtja a celt:
sat(Kif) :-
calc(Kif,1,Cel,0),
%write(Cel),
call(Cel).
A calc-cal kiirattam azt is, hogy egy-egy alkalommal milyen
kifejezest bont eppen "kette", igy a kovetkezo futasi eredmenyt
kaptam:
| ?- sat( ((A+B)*C) =\= ((A*C)+B)), sat(A*B).
0 (_473+_495)*_522=\=_473*_522+_495
1 (_473+_495)*_522
2 _473+_495
3 _473
3 _495
2 _522
1 _473*_522+_495
2 _473*_522
3 _473
3 _522
2 _495
ITT KEZDIDIK A MASODIK SAT KIFEJEZESENEK KIERTEKELESE, LATHATOAN UJ
NEVET KAPOTT AZ A ES B VALTOZO
0 _3382*_3471
1 _3382
1 _3471
A = 1,
B = 1,
C = 0,
prolog:trig_nondif(_B,_C,_A,_D),
prolog:trig_or([_B,_C,_D],_A,_A),
prolog:when(_A,(nonvar(_B);nonvar(_C);?=(_B,_C)),user:not(_B,_C)) ? ;
no
| ?-
Kerdesem, hogy mit kellene tennem ahhoz, hogy a rendszer a kulonbozo
sat hivasok argumentumaiban kapott valtozokat a rendszer ne
kulonboztesse meg, hanem azonosnak tekintse oket?
Koszonettel,
Buza Krisztian
__________________________________
Yahoo! FareChase: Search multiple travel sites in one click.
http://farechase.yahoo.com
A házi feladat beadásához használatos szkript futtatásához szeretnék
segítséget kérni:
a hozzám legközelebb eső Ural2 szerveren próbáltam futtatni a szkriptet, de
kitömörítés és jogosultságmódosítás után -bash: ./nlpkhfbe.05a: cannot
execute binary file hibaüzenetet kaptam. Mit tegyek? A segítséget előre is
köszönöm,
cserby
HelLo!
Idén hallgatom az NLP című tantárgyat. Az itt tanult módszer más
tantárgyban is alkalmazhatónak tűnnek (MI házi feladathoz). Sajnos ott
azonban Java vagy C nyelvű programot kérnek. A kérdésem lényege, hogy
milyen módon lehet a Prologban megírt és ott helyesen futó program kódot
olyan módon fordítani, compliolni, egyéb, hogy a fent említett két
nyelven megírt fő program számára használható, kezelhető legyen.
Segitséget előre is köszönöm:
Soproni Péter
Felraktam a honlapra a 2. kis hazi feladat kiirasat. Az ott leirt
(szokasos) modon mar most beadhato. Beadhato nov 15-ig (2 pontert) es utana
is (1 pontert).
Sajnalattal lattam, hogy az 1. kis hazi feladatot csak harman oldottatok
meg. Ezert az 1. kis hazi feladatra is meg 2 pontot adok, ha nov 15-ig
beadjatok (az 1. pont jar utana is).
-Peter
Hi,
nincs birtokotokban véletlenül egy hatékony amőba-algoritmus? Vagy nem
tudnátok dobni egy jó linket hozzá? A cél, hogy a segítségével be tudjak
kódolni kb. 30 órányi munkával egy komplett intelligens kis játék
progit. Ha egy pszeudo-kód lenne mondjuk egy jó (érthető) minimax
algoritmushoz, az már bőven megfelelne. (Hogy az alfabéta vágásról már
ne is beszéljünk.)
De ha akármilyen, beépített intelligenciával rendelkező játékprogram
forrásotok van, az is tökéletes. Nem titok: választható házi feladathoz
kérem a segítséget.
(BME-seknek: ennek semmi köze az amőbaversenyhez! Igazából minden, ami
egy kicsit is intelligens, megfelel :-) )
Üdv
GTZ
____________________________________________________________________
Miert fizetsz az internetert? Korlatlan, ingyenes internet hozzaferes a FreeStarttol.
Probald ki most! http://www.freestart.hu
Kedves Mindnyajan!
Elindult az ETS, felvettelek benneteket, lehet rajta keresztul SICStus
licenszt igenyelni.
Mukodik a kis hazi beadas is, a reszleteket lasd a honlapon:
http://cs.bme.hu/~szeredi/oktatas/nlp/
Jo munkat!
Peter
Udvozlok mindenkit a listan!
Frissitettem a honlapot, feltettem linket az eloadasokon kivetitett
foliakra (ezek egyelore azonosak a tavalyiakkal, es nem is varhato
komolyabb valtozas).
A filled_rectangle peldaprogram is letoltheto a Peldaprogramok cim alatt,
sok mas peldaval egyutt.
Egyelore 22-en vagyunk a listan, terjesszetek, hogy mindenki, aki jar az
eloadasra, iratkozzon fel a listara is.
Ha van valami kerdesetek, irjatok a listara.
-Peter
Kedves Mindnyajan!
(elnezest az esetleges duplikatumokert)
A tanszekunkon folyo SILK-SINTAGMA kutatasi projekt kapcsan felmerult
nehany olyan kutatasi feladat, amely egyben TDK temakent is szolgalhat.
Ezekre a feladatokra szeretnek most verbuvalni jelentkezoket kozuletek. A
mostantol szept 15.-ig terjedo idoszakban 4-6 heti teljes munkaidonek
megfelelo munkamennyiseget (durvan 160-240 munkaorat) varnank el, viszonylag
szabad, de egyeztetendo beosztasban, es ezert valamennyi fizetseget is
tudnank adni a projekt kapcsan. Elsosorban irodalmazasi, elemzesi munkarol
lenne szo, de kisebb programok irasa, meglevo eszokokkel valo kiserletezes
is szukseges lehet. Az elsodleges output egy tanulmanyfejezet lesz. A temak
rovid leirasat mellekelem, es a honlapomon is olvashatjatok
(http://www.cs.bme.hu/~szeredi/oktatas/temak05s2.txt) -- de ne ijedjetek
meg, ha nem ertheto, mert ezt nagyon nehez ilyen roviden elmondani.
A projekt kapcsan keszult anyagokbol szeptember-oktober folyaman realis
lehetoseg egy jo minosegu TDK dolgozat megirasa.
Junius 29-en szerdan delutan 2-tol tartunk egy megbeszelest, ahol egy
kicsit reszletesebben is elmondjuk, hogy mit is takarnak ezek a temak, es
valaszolunk a kerdesekre.
Kerem, akit erdekel valamelyik tema, az irjon egy emailt nekem, amelyben
megadja a szamara erdekes temakat, valamint azt, hogy el tud-e jonni a 29-i
megbeszelesre. Ha nem, adjon meg minel tobb alternativ idopontot a
kozeljovoben arra, hogy beszelgessunk.
A http://www.cs.bme.hu/~szeredi/oktatas/temak05s2.txt lapon talaltok olyan
temakat is amelyek nem a SINTAGMA projekthez kapcsolodnak (2.x es 3.x
pontok). Emellett szivesen vezetek mas, egyeni temakat is, ha azok a
logikai programozashoz kapcsolodnak. Ha valakit ezek a lehetosegek
erdekelnek, annak is erdemes mar a nyaron elkezdeni foglalkozni a
temaval. Eddigi TDK-s tapasztalatom az volt, hogy egy intenzivebb nyari
munka I-II dijas TDK eredmenyt adott. Ha valaki a nyaron legalabb
valamennyi idot ra tud szanni egy ilyen feladatra, attol is kerem, hogy
irjon levelet a tema(k) feltuntetesevel. Elegendo jelentkezo eseten a 29-i
megbeszeles masodik feleben ezekrol is lesz szo.
Szeredi Peter
---------------------------------------------------------------------------
Önálló labor, TDK és diplomamunka (egységesen: munka) témák
Szeredi Péter, SZIT
szeredi(a)cs.bme.hu
2005. június
1. Logikai programozáson alapuló segédeszközök információs rendszerek
integrálásának segítéséhez
A tanszéken 2005. januárjában indult a SINTAGMA (Szemantikus INtegrációs
Technológia Alkalmazása Grid-alapú Modell-vezérelt Architektúrákban)
c. NKFP projekt, partnerek: SZTAKI, KFKI Számítástechnikai Rt., MTI,
OSZK, Areco, Hunoris.
A SINTAGMA projekt folytatása annak a kutatási munkának, amely az
IQSYS Rt.-nél folyt a SILK (System Integration via Logic and
Knowledge) ill. LOBO (Logic-Based Ontology Management) kutatási
projektek keretében. Ennek a projekt-sorozatnak a célja egy olyan
eszközkészlet létrehozása, amely heterogén információ-források
egységesítését segíti oly módon, hogy a forrásokat magukat nem
duplikáljuk, nem másoljuk le. A projektsor alapgondolata az, hogy
az információs rendszerekre vonatkozó ismereteket (metaadatokat)
egy tudásbázisban tároljuk. Ezeket az ismereteket többféle
formalizmussal adhatjuk meg, pl. leíró-logikában (Description
Logics) vagy objektum-orientált módon (UML). A tudásbázisban
tároljuk az objektum-modell jellemzõit: a fogalmak, osztályok
szerkezetét, kapcsolataik leírását. Emellett fontos szerepet kapnak
az objektumokat, kapcsolatokat jellemzõ megszorítások, korlátok,
amelyek megfogalmazására részben az OCL (az UML részét képezõ
Object Constraint Language) nyelvet, részben a leíró-logika nyelvét
használjuk.
A SINTAGMA rendszer ily módon lehetõvé teszi, hogy egyes felhasználói
csoportok fogalmi modelljeit megfogalmazzuk és ezeket összekapcsoljuk az
információs rendszerek modelljeivel. Az eszközkészlet egyes komponensei
a modellek és kapcsolatrendszerek felépítését és vizsgálatát segítik, a
heterogén információ-források lekérdezését biztosítják, illetve a
modell- és adat-szintû ellentmondások felderítését és kiküszöbölését
támogatják.
A témák viteléhez szükséges az objektum-orientált modellezés és a
logikai programozás (Prolog) ismerete és alkalmazási készsége. Egyes
feladatokhoz szükség van a Java nyelv ismeretére is.
A SINTAGMA projekt alapozó kutatási munkái most folynak, várhatóan
az alábbi területeken lehet bekapcsolódni a projektbe (a lista
bõvítése folyamatban):
1.1 Hibrid modellezési paradigmák
A különbözõ tudásterületeken eltérõ modellezési eszközöket és
módszereket használnak a fellelhetõ ismeretek leírására. A sok
helyen jól használható objektumorientált paradigma kevésbé alkalmas
ontológia jellegû tudásmorzsák megadására, ahol az osztályokat úgy
hozzuk létre, hogy megmondjuk: milyen jellemzõvel rendelkezõ
példányok az elemei (lásd a leíró logikai megközelítést). Ugyancsak
másfajta modellezésre lehet szükség pl. webszolgáltatások
leírása esetén (amelyek összetett típusok használatát is
megkövetelhetik).
A feladat annak megvizsgálása, hogy milyen módon hozható az
UML-, a leíró logikák- és a webszolgáltatások világa egy közös
fedél alá. A cél egy olyan egységes modellezési nyelv
kialakítása, amely lehetõvé teszi a fenti modellezési elemek
együttes használatát.
1.2 Modellverifikáció
A jelenleg mûködõ ellenõrzõ eszköz a modellszintû
ellentmondások felderítését támogatja a CLP (Constraint Logic
Programming) eszköztárának felhasználásával. A különbözõ
tartományokon dolgozó CLP következtetõk egy ütemezõ
közremûködésével fejtik ki hatásukat.
A feladat annak az elemzése, hogy a létezõ, elsõrendû logikán
alapuló tételbizonyítók mennyire és milyen módon alkalmasak a
jelenlegihez hasonló verifikációs feladatok megoldására. A cél annak
eldöntése, hogy a CLP-s vagy pedig az elsõrendû következtetõn
alapuló irány az, amelyet a rendszer további fejlesztése során
követnünk érdemes.
1.3 Gráfok hasonlóságvizsgálata
Információforrások integrációjakor az elsõ lépés annak
eldöntése, hogy a különbözõ forrásokat reprezentáló modellek
között milyen kapcsolatok, milyen megfeleltetések
lehetségesek. Ehhez össze kell hasonlítani az egyes
modelleket. Különbség lehet az alkalmazott technikában akkor, ha
ezen modellek valamilyen szempontból közös õstõl származnak,
ilyenkor beszélhetünk modellek/ontológiák evolúciójáról.
A feladat olyan (feltehetõleg gráf) algoritmusok kidolgozása,
amelyek objektumorientált és leíró logikai modellelemek
összehasonlítására alkalmazhatók. A cél egy olyan egységes
modell-összehasonlító modul elkészítése, amely az 1.1-es
feladatban leírt hibrid modellezési nyelven leírt modellek
összehasonlítását képes hatékonyan elvégezni.
1.4 Modellek egyesítése
A heterogén információforrások egységesítését úgy érjük el,
hogy a forrásokat leíró modellek fölé új, egyesített modelleket
építünk. Ezeket és az alacsonyabb szintû modelleket különféle
leképzésekkel kapcsoljuk össze. Az egyesített modellek több
információforrást fognak át és tesznek lekérdezhetõvé.
A feladat olyan módszerek kidolgozása, amelyek segítségével
automatizálható az egyesített modellek létrehozásának
folyamata, ha feltesszük, hogy a modellek összehasonlításából
származó eredmények már rendelkezésünkre állnak. A cél az, hogy
a felhasználó a lehetõ legkevesebb manuális beavatkozással
legyen képes átfogó modellek létrehozására.
1.5 Generikus HTML csatoló
Félig strukturált adatokban, mint például XML-ben, a keresés
többé-kevésbé megoldott, hiszen rendelkezésünkre állnak a
különféle XML lekérdezõnyelvek megvalósításukkal együtt. A HTML
források speciálisak azonban abból a szempontól, hogy a rajtuk
történõ keresést általában vizuális információk
vezérlik. Például a felhasználó azt az igényt tudja
megfogalmazni könnyen, hogy õt a lapon látható második
táblázatnak érdekli az ár oszlopa, függetlenül attól, hogy maga
a HTML kód hogyan néz ki.
A feladat egy olyan információkinyerõ technológia létrehozása, amely
képes HTML nyelvû dokumentumokban keresni úgy, hogy a keresés
feltételét a megjelenítési rétegen fogalmazzuk meg. A cél az, hogy
ha egy felhasználó el tudja magyarázni egy böngészõ elõtt ülve, hogy
õt pontosan mi érdekli egy adott oldalon, akkor a kialakítandó
technológia képes legyen kinyerni azt az oldalról. A keresõnek akkor
is meg kell találnia a keresett elemet, ha maga az oldal idõközben
bizonyos mértékben meg is változott.
Hello!
Hogy is volt pontosan az átlókra vonatkozó constraint a felhők
feladatban?
0 _ _
_ _ _ esetén pl. nem mondhatom biztosan, hogy a középső mező 1.
_ _ 0
Pallos Péter
Nem, valaki rájött a konzultáció végefelé egy 3x3-as blokkokra
vonatkozó szűkítési lehetőségre, amit rosszul írtam fel.
>>Hogy is volt pontosan az átlókra vonatkozó constraint a felhők
>>feladatban?
>>
>>0 _ _
>>_ _ _ esetén pl. nem mondhatom biztosan, hogy a középső mező 1.
>>_ _ 0
>>
>>Pallos Péter
SQ> Szia, nem tudom erre gondolsz-e:
SQ> A B
SQ> C D
SQ> (A == D) <=> (C == B)
SQ> üdv,
SQ> Tibi