• No results found

Gequoteerde zitting Prolog: Compressie Naam: Richting:

N/A
N/A
Protected

Academic year: 2021

Share "Gequoteerde zitting Prolog: Compressie Naam: Richting:"

Copied!
3
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Gequoteerde zitting Prolog: Compressie

Naam: Richting:

Enkele praktische afspraken

• Je krijgt twee uur om deze opdracht individueel op te lossen.

• Je raadpleegt enkel afgedrukte kopies van de slides (eventueel met handgeschreven nota’s) en de ingebouwde manual van SWI-Prolog (ge- bruik bv ?-help(write). of ?-apropos(select).)

• In de map 1617 Gequoteerde/Prolog woensdag op Toledo vind je de bestanden compressionfacts.pl en run.pl. Ook de indienmodule staat daar.

– Het bestand compressionfacts.pl bevat de facts die gebruikt werden voor de voorbeeld queries van deze opdracht. Het be- stand run.pl kan worden gebruikt m.b.v. swipl -f run.pl om de voorbeeldqueries uit te voeren. Dit bestand bevat ook de ver- wachte uitvoer voor deze queries.

– Als de opdracht expliciet de naam (en ariteit) van een predicaat vermeldt, ben je verplicht om dezelfde naam (en ariteit) te ge- bruiken in je oplossing.

– Je oplossing zet je in een bestand prolog.pl en de eerste lijnen van dit bestand moeten je naam, studentennummer en richting bevatten.

% Jan Jansen

% r0123456

% master cw

– Na twee uur, of wanneer je klaar ben, dien je het prolog.pl bestand in via Toledo.

1

(2)

Door middel van compressie worden grote bestanden verkleind opgeslagen.

Een manier om aan compressie te doen is het gebruik van een look-up table met veel voorkomende datasequenties.

Voor deze opgave krijg je een lookup table aangeleverd door middel van code(Sequence, Code) feiten (zoals bv. in Listing 1), waarbij Sequence een lijst prologtermen is en Code ´e´en enkele prologterm die gebruikt kan worden om de lijst voor te stellen in een compacte weergave. We gebruiken hier de conventie dat de prologtermen die voorkomen in Sequence altijd letters zijn, en de prologtermen die voorkomen als Code altijd getallen.

Listing 1: Een voorbeeld van een look-up table.

c o d e ([ a , b ] , 1). c o d e ([ b , c ] , 4).

c o d e ([ b , e ] , 2). c o d e ([ c , d ] ,5).

c o d e ([ b , c , d , e ] , 3). c o d e ([ a , b , c ] ,6).

Opdracht 1 Schrijf een predicaat decompress(Compressed, Decompressed) dat gegeven een gecomprimeerde voorstelling Compressed, slaagt met de originele voorstelling als waarde voor Decompressed. Merk op dat een Compressed lijst ook termen kan bevatten die geen code zijn. In dit ge- val is dit een stuk van het originele bestand dat niet gecomprimeerd kon worden.

? - d e c o m p r e s s ([2] , D ).

D = [ b , e ].

? - d e c o m p r e s s ([1 ,3] , [ a , b , c , d , e ]).

f a l s e .

? - d e c o m p r e s s ([ a , 2 , c , 3] , D ).

D = [ a , b , e , c , b , c , d , e ].

Opdracht 2 Nu willen we ook compressie voor onze rekening nemen door middel van een predicaat compress(Uncompressed, Compressed). Dit pre- dicaat slaagt als Compressed een geldige compressie is voor de lijst van

2

(3)

prologtermen voorgesteld door Uncompressed (Je mag ervan uitgaan dat deze altijd gegeven is).

Let op! Een compressie is geldig wanneer het mogelijk is om vanuit de compressie eenduidig de originele voorstelling te recupereren, en als de compressie alleen stukken uit de originele voorstelling bevat wanneer deze noodzakelijk zijn, i.e. wanneer vanaf deze positie in het originele bestand geen codewoord gevonden kan worden.

? - c o m p r e s s ([ a , b , c ] , [1 , c ]).

t r u e . % [1 , c ] is een geldige , m a a r n i e t de m e e s t

% c o m p a c t e v o o r s t e l l i n g van [ a , b , c ].

% [6] is ook een g e l d i g e en c o m p a c t e r e v o o r s t e l l i n g .

? - c o m p r e s s ([ a , b , c ] , [ a , 4 ] ) . f a l s e .

? - c o m p r e s s ([ b , c , d , e ] , C ).

C = [4 , d , e ];

C = [ 3 ] .

Opdracht 3 Zoals uit opdracht 2 blijkt, is het mogelijk dat een enkel bestand meerdere compressies heeft. Sommige van deze compressies zijn minder effici¨ent dan andere, omdat ze langer zijn. Schrijf een predicaat optcompression(Uncompressed, Compressed) dat slaagt wanneer Compressed (een van de) kortste gecomprimeerde voorstellingen is van Uncompressed.

? - o p t c o m p r e s s i o n ([ a , b , c , d , f ] , C ).

C = [6 , d , f ];

C = [1 , 5 , f ].

? - o p t c o m p r e s s i o n ([ b , c , d , e ] , C ).

C = [ 3 ] .

? - o p t c o m p r e s s i o n ([ a , b , c , d , e ] , [ a , 3 ] ) . f a l s e .

3

Referenties

GERELATEERDE DOCUMENTEN

Als een kandidaat door middel van een sluitend voorbeeld heeft laten zien dat de kleinst mogelijke compressie gelijk is aan –1, hiervoor geen. scorepunten in

• Bij een rectumresectie wordt het restant van de bekkenbodem bij elkaar getrokken, wat leidt tot compressie en circulaire vernauwing van het distale deel van de vagina en tot

Compressietherapie als onderdeel van de behandeling van oedeem kan intensief en tijdrovend zijn, zowel voor de behandelaar als ook voor de patiënt. Steeds vaker zijn patiënten

Bedrijven die in aanmerking willen komen voor de erkenning van levering van Therapeutische Elastische Kousen dienen te voldoen aan de Algemene eisen en aan de branche specifieke

Heeft u enig idee of er in de opleiding/cursus voor wondverpleegkundigen veel aandacht besteed wordt aan MLD, compressie therapie en het aanmeten van therapeutisch elastische

Het JOBST FarrowWrap teenverband geeft 20-30 mmHg compressie en is geschikt voor patiënten met licht tot matig oedeem. Het teenverband kan ook gecombineerd worden met

Een paar weken na de operatie kan een aanvullende behandeling gedaan worden waarbij de spataderen ‘ingespoten’ worden.. Dit wordt ook wel scleroseren, sclerotherapie of

Compressie en crowding van de zijdelingse delen in de bovenkaak is sterker bij patiënten die op jonge leeftijd een operatie voor het sluiten van het verhemelte hebben ondergaan