/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
berpox 610
creamygirl 610
3773 570
10  jomfruane 570
Hvor bor elgen
Fra : Jonas Jalling


Dato : 19-12-08 10:14

Hej alle,

Jeg har siddet og kæmpet lidt på opgaven om elgen på denne side:
http://ing.dk/artikel/93340

Man kan selvfølgelig løse den vha. trial-and-error, men er der en
smartere metode?

Mvh Jonas Jalling

 
 
Jonas Jalling (19-12-2008)
Kommentar
Fra : Jonas Jalling


Dato : 19-12-08 10:14

Jonas Jalling wrote:
> Hej alle,
>
> Jeg har siddet og kæmpet lidt på opgaven om elgen på denne side:
> http://ing.dk/artikel/93340
>
> Man kan selvfølgelig løse den vha. trial-and-error, men er der en
> smartere metode?
>
> Mvh Jonas Jalling
Og det er selvfølgelig en kronhjort, og ikke en elg - jeg beklager.

Mvh Jonas

Uffe Kousgaard (19-12-2008)
Kommentar
Fra : Uffe Kousgaard


Dato : 19-12-08 10:32

"Jonas Jalling" <jonas@jalling.dk> wrote in message
news:494b65db$0$90262$14726298@news.sunsite.dk...
>
> Jeg har siddet og kæmpet lidt på opgaven om elgen på denne side:
> http://ing.dk/artikel/93340

Det er samme opgave, som jeg kender med cigaretter og nogle flere andre
elementer. Meget gammel.

Den kan løses med papir og blyant, hvis man trinvis konstaterer at nogle
kombinationer af naboskab / dyr / hobby m.m. ikke er mulige og til sidst er
kun én mulighed tilbage. Trinvis. Ikke alt sammen i ét hug.

Hilsen
Uffe



Jonas Jalling (19-12-2008)
Kommentar
Fra : Jonas Jalling


Dato : 19-12-08 10:40

Uffe Kousgaard wrote:
> "Jonas Jalling" <jonas@jalling.dk> wrote in message
> news:494b65db$0$90262$14726298@news.sunsite.dk...
>> Jeg har siddet og kæmpet lidt på opgaven om elgen på denne side:
>> http://ing.dk/artikel/93340
>
> Det er samme opgave, som jeg kender med cigaretter og nogle flere andre
> elementer. Meget gammel.
>
> Den kan løses med papir og blyant, hvis man trinvis konstaterer at nogle
> kombinationer af naboskab / dyr / hobby m.m. ikke er mulige og til sidst er
> kun én mulighed tilbage. Trinvis. Ikke alt sammen i ét hug.
>
> Hilsen
> Uffe
>
>
Ja, det er sådan jeg har gjort indtil nu. Men er det _metoden_?

Mvh Jonas

Uffe Kousgaard (19-12-2008)
Kommentar
Fra : Uffe Kousgaard


Dato : 19-12-08 11:09

"Jonas Jalling" <jonas@jalling.dk> wrote in message
news:494b6c14$0$90271$14726298@news.sunsite.dk...

> Ja, det er sådan jeg har gjort indtil nu. Men er det _metoden_?

Det er et almindeligt princip, at man udelukker n-1 ud af n muligheder og
deraf kan se, at den sidste er løsningen. Jeg tror ikke, at der er andre
metoder.



Jonas Jalling (19-12-2008)
Kommentar
Fra : Jonas Jalling


Dato : 19-12-08 11:13

Uffe Kousgaard wrote:
> "Jonas Jalling" <jonas@jalling.dk> wrote in message
> news:494b6c14$0$90271$14726298@news.sunsite.dk...
>
>> Ja, det er sådan jeg har gjort indtil nu. Men er det _metoden_?
>
> Det er et almindeligt princip, at man udelukker n-1 ud af n muligheder og
> deraf kan se, at den sidste er løsningen. Jeg tror ikke, at der er andre
> metoder.
>
>
Ok.. Jeg var ude i at programmere mig ud af det - men det selvfølgelig
ikke lige så sjovt.
Det skal dog siges at jeg netop har fået opgaven løst.

Mvh Jonas

Martin Andersen (19-12-2008)
Kommentar
Fra : Martin Andersen


Dato : 19-12-08 12:32

Jonas Jalling wrote:
> Uffe Kousgaard wrote:
>> "Jonas Jalling" <jonas@jalling.dk> wrote in message
>> news:494b6c14$0$90271$14726298@news.sunsite.dk...
>>
>>> Ja, det er sådan jeg har gjort indtil nu. Men er det _metoden_?
>>
>> Det er et almindeligt princip, at man udelukker n-1 ud af n muligheder
>> og deraf kan se, at den sidste er løsningen. Jeg tror ikke, at der er
>> andre metoder.
>>
>>
> Ok.. Jeg var ude i at programmere mig ud af det - men det selvfølgelig
> ikke lige så sjovt.
> Det skal dog siges at jeg netop har fået opgaven løst.
>
> Mvh Jonas

Det ville være en smal sag i prolog :)

Bruno Christensen (19-12-2008)
Kommentar
Fra : Bruno Christensen


Dato : 19-12-08 18:06

On Fri, 19 Dec 2008 12:32:22 +0100, Martin Andersen wrote:

> Jonas Jalling wrote:
>> Uffe Kousgaard wrote:
>>> "Jonas Jalling" <jonas@jalling.dk> wrote in message
>>> news:494b6c14$0$90271$14726298@news.sunsite.dk...
>>>
>>>> Ja, det er sådan jeg har gjort indtil nu. Men er det _metoden_?
>>>
>>> Det er et almindeligt princip, at man udelukker n-1 ud af n muligheder
>>> og deraf kan se, at den sidste er løsningen. Jeg tror ikke, at der er
>>> andre metoder.
>>>
>>>
>> Ok.. Jeg var ude i at programmere mig ud af det - men det selvfølgelig
>> ikke lige så sjovt.
>> Det skal dog siges at jeg netop har fået opgaven løst.
>>
>> Mvh Jonas
>
> Det ville være en smal sag i prolog :)

Ville du ikke løse opgaven allerede ved "papirprogrammeringen"?

--
MVH
Bruno

Martin Andersen (20-12-2008)
Kommentar
Fra : Martin Andersen


Dato : 20-12-08 01:40

Bruno Christensen wrote:
> On Fri, 19 Dec 2008 12:32:22 +0100, Martin Andersen wrote:
>
>> Jonas Jalling wrote:
>>> Uffe Kousgaard wrote:
>>>> "Jonas Jalling" <jonas@jalling.dk> wrote in message
>>>> news:494b6c14$0$90271$14726298@news.sunsite.dk...
>>>>
>>>>> Ja, det er sådan jeg har gjort indtil nu. Men er det _metoden_?
>>>> Det er et almindeligt princip, at man udelukker n-1 ud af n muligheder
>>>> og deraf kan se, at den sidste er løsningen. Jeg tror ikke, at der er
>>>> andre metoder.
>>>>
>>>>
>>> Ok.. Jeg var ude i at programmere mig ud af det - men det selvfølgelig
>>> ikke lige så sjovt.
>>> Det skal dog siges at jeg netop har fået opgaven løst.
>>>
>>> Mvh Jonas
>> Det ville være en smal sag i prolog :)
>
> Ville du ikke løse opgaven allerede ved "papirprogrammeringen"?
>
Hvis du dermed mener om ikke man har al den fornødne information til at
finde et svar på programmeringstidspunktet, så jo, ellers kunne intet
program hjælpe dig. Men løsningen er ikke trivielt givet bare ved at
skrive koden.

Styrken ved prolog er at man populært sagt kun stiller spørgsmålet og
den så finder svaret.

Du kan skrive hvilke constraints der er på forskellige variable og så
enumerere de mulige svar ved at spørge fortolkeren efter eksempler der
opfylder kriterierne. F.eks. kan du definere et 2-dimensionelt array på
8x8 og spørge fortolkeren efter alle måder at "instantiere" variable så
constraints er opfyldt der svarer til at placere 8 dronninger på et
skakbrædt uden nogen kan "slå" hinanden. Det er i princippet ikke
anderledes end den slags opgave du kommer med.

Mht. tidskompleksitet er det mere eller mindre det samme som den naive
"bruteforce" metode med en masse for-løkker for at finde et rigtigt
svar, men hvor det her er sprogets fortolker som gør du ikke behøver at
skrive alle løkkerne og checksne.

Mvh. Martin

Bruno Christensen (20-12-2008)
Kommentar
Fra : Bruno Christensen


Dato : 20-12-08 19:50

On Sat, 20 Dec 2008 01:39:49 +0100, Martin Andersen wrote:

> Hvis du dermed mener om ikke man har al den fornødne information til at
> finde et svar på programmeringstidspunktet, så jo, ellers kunne intet
> program hjælpe dig. Men løsningen er ikke trivielt givet bare ved at
> skrive koden

Nej, selvfølgelig ikke. Det er formuleringen af problemet der giver
løsningen.

Jeg hoppede fra "udvidet matematik" da vi kom til mængdelære. Det var i
realskolen.

Mine børn startede med mængdelære i 3. klasse. Jeg skulle hjælpe. Så
spørgsmålet var "Fortæl mig hvad det er du skal lave"? Nåh, du skal finde
en eller anden mængde, hvad består den af? Etc.

På et eller andet tidspunkt fortalte børnene mig at nu havde de fundet ud
af det.

De fortalte ikke mig hvad mængdelære gik ud på, men jeg spurgte heller
ikke
--
MVH
Bruno

jenspolsen@hotmail.c~ (20-12-2008)
Kommentar
Fra : jenspolsen@hotmail.c~


Dato : 20-12-08 15:32

On 19 Dec., 12:32, Martin Andersen <d...@ikke.nu> wrote:
> Jonas Jalling wrote:
> > Uffe Kousgaard wrote:
> >> "Jonas Jalling" <jo...@jalling.dk> wrote in message
> >>news:494b6c14$0$90271$14726298@news.sunsite.dk...
>
> >>> Ja, det er sådan jeg har gjort indtil nu. Men er det _metoden_?
>
> >> Det er et almindeligt princip, at man udelukker n-1 ud af n muligheder
> >> og deraf kan se, at den sidste er løsningen. Jeg tror ikke, at der er
> >> andre metoder.
>
> > Ok.. Jeg var ude i at programmere mig ud af det - men det selvfølgelig
> > ikke lige så sjovt.
> > Det skal dog siges at jeg netop har fået opgaven løst.
>
> > Mvh Jonas
>
> Det ville være en smal sag i prolog :)- Skjul tekst i anførselstegn -

Det er sgu da snyd. Det eneste der skal programmeres er
søgetræsmekanismen og den får du gratis i Prolog

J.O.


Niels L. Ellegaard (19-12-2008)
Kommentar
Fra : Niels L. Ellegaard


Dato : 19-12-08 21:08

Jonas Jalling <jonas@jalling.dk> writes:

> Uffe Kousgaard wrote:
>> "Jonas Jalling" <jonas@jalling.dk> wrote in message
>> news:494b65db$0$90262$14726298@news.sunsite.dk...
>>> Jeg har siddet og kæmpet lidt på opgaven om elgen på denne side:
>>> http://ing.dk/artikel/93340
>>
>> Det er samme opgave, som jeg kender med cigaretter og nogle flere
>> andre elementer. Meget gammel.
>>
>> Den kan løses med papir og blyant, hvis man trinvis konstaterer at
>> nogle kombinationer af naboskab / dyr / hobby m.m. ikke er mulige og
>> til sidst er kun én mulighed tilbage. Trinvis. Ikke alt sammen i ét
>> hug.
>>
>> Hilsen
>> Uffe
>>
>>
> Ja, det er sådan jeg har gjort indtil nu. Men er det _metoden_?

Der er i princippet to metoder til at lave et program

1) Det letteste er at lave et program med en masse for-løkker inde i
hinanden. Start med at konstatere at skovridderen kan bo i hus 1,2,3,4
eller 5. Nu kan du undersøge disse huse et ad gangen. For hvert valg
af skovridder kan du finde fire mulige placeringer af den
fuldmægtige. Nu undersøger du dem en ad gangen. For hver placing af
den fuldmægtige kan du finde 3 placeringer af skovarbejderen
osv. Sådan kan du få et program til at undersøge alle muligheder og
returnere den løsning der er lovlig.

2) Hvis det skal være rigtigt fint kan du bruge lineær
programmering. Du kan regne på et array hver hvert element x(i,j,k)
har værdier mellem 0 og 1.

Her angiver i,j,k følgende
i angiver om vi snakker job, fritidsinteresse eller madret
j angiver en værdi (skovridder, skovarbejder, yoga eller spaghetti)
k angiver et husnummer 1..6

Her er et par eksempler på hvad værdierne af x kan betyde:

x(1,1,1)=1 hvis skovridderen bor i hus 1
x(1,1,1)=0 hvis skovridderen ikke bor i hus 1
x(1,1,2)=1 hvis skovridderen bor i hus 2
x(1,1,2)=0 hvis skovridderen ikke bor i hus 2
.... osv

x(1,2,1)=1 hvis skovarbejderen bor i hus 1
x(1,2,1)=0 hvis skovarbejderen ikke bor i hus 1
x(1,2,2)=1 hvis skovarbejderen bor i hus 2
x(1,2,2)=0 hvis skovarbejderenriddre ikke bor i hus 2
.... osv

x(2,1,1)=1 hvis personen i hus 1 spiser spaghetti
x(2,1,1)=0 hvis personen i hus 1 ikke spiser spaghetti
x(2,2,1)=1 hvis personen i hus 1 spiser kødret
x(2,2,1)=0 hvis personen i hus 1 ikke spiser kødret
.... osv

Nu kan man begynder at opskrive uligheder. Her et et par eksempler
Alle sandsynligheder skal være mellem 0 og 1.

0 <= x(i,j,k) <= 1

(I virkeligheden håber vi på en løsning hvor x(i,j,k) altid er et
heltal, men det er lettere at skrive det generelt op.)

Her er et par flere eksempler på uligheder:

Jeg går ud fra at der højst er en skovridder i de 6 huse
x(1,1,1)+x(1,1,2)+x(1,1,3)+x(1,1,4)+x(1,1,5)+x(1,1,6)<=1

Jeg går ud fra at der højst er en person i de 6 huse der spiser spaghetti.
x(2,1,1)+x(2,1,2)+x(2,1,3)+x(2,1,4)+x(2,1,5)+x(2,1,6)<=1

Jeg går ud fra at personen i hus 1 højst har et job
x(1,1,1)+x(1,2,1)+x(1,3,1)+x(1,4,1)+x(1,5,1)+x(1,6,1)<=1

Givet alle disse uligheder kan vi førsøge maksimere en funktion. Den
oplagte funktion at maksimere er summen af alle værdierne i x.

Maximer følgende funktion
f(x) = x(1,1,1)+x(1,1,2)+.... + x(6,6,6).

Hvis vi er heldige kan vi finde en læsning hvor f(x)=6*6*6;

Der findes en masse pakker til at optimere lineære funktioner under
lineære bibetingelser, man kan eksempelvis finde nogen biblioteker
her:

http://www.coin-or.org/

Man kan også finde information på wikipedia:

http://en.wikipedia.org/wiki/Assignment_problem

Niels




Niels L. Ellegaard (20-12-2008)
Kommentar
Fra : Niels L. Ellegaard


Dato : 20-12-08 12:18

"Uffe Kousgaard" <oh@no.no> writes:
> "Niels L. Ellegaard" <niels.ellegaard@gmail.com> wrote in message
> news:86tz90apyx.fsf@gmail.com...
>
> Jeg havde nemlig også overvejet LP / MIP, men synes det bliver ret
> besværligt at udtrykke naboskaber.

Man kan indføre en masse begræsninger på følgende form:

Det er ikke både rigtigt at skovfogeden bor i hus 1 og at
spaghetti-spiseren bor i hus 3.

a(1,1,1)+a(1,1,3) <= 1;

Det er ikke både rigtigt at skovfogeden bor i hus 1 og at
spaghetti-spiseren bor i hus 4.

a(1,1,1)+a(1,1,4) <= 1;

..... osv

LP/MIP-programmet bliver måske ikke helt lige så elegant som
prolog-løsningen, men jeg vil gætte på at når begge programer først er
skrevet, så kører LP/MIP-programmet lidt hurtigere.

God jul

Niels




Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409076
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste