🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #1925

Re: java.lang.OutOfMemoryError

#1925
From: Sjoerd A. Schreuder
Date: Thu, 04 Nov 2004 22:49
54 lines
3783 bytes
Passero wrote:
> "John Bokma" <postmaster@castleamber.com> schreef in bericht
> news:Xns95978C98DB168castleamber@130.133.1.4...
> 
>>Passero wrote:
>>
>>>Voor school moeten we voor het vak AI een schuifraam maken die de pc
>>>oplost. We moeten 3 methoden implementeren waaronder 1 blinde en 2
>>>heuristieke.
>>>
>>>Bij mijn blinde methode krijg ik soms volgende fout:
>>>java.lang.OutOfMemoryError
>>>Het rare is dat hij niet uit mijn programma springt en dat ik die
>>>error ook niet kan opvangen. Het is duidelijk dat er geen geheugen
>>>meer vrij is en dat hij daarom moet stoppen. Kan ik dat toch opvangen
>>>zodat ik de gebruiker een bericht kan geven of kan ik het geheugen
>>>aanpassen zodat hij toch verder kan rekenen? Het is mij ook opgevallen
>>>dat hij soms die error geeft ergens tussen stap 257000 en 258000 en
>>>dan een andere keer tussen 256000 en 257000. Hoe komt dat en wat zou
>>>ik eraan kunnen doen?
>>
>>Je algoritme herzien. Wat is je blinde methode?
> 
> 
> Diepte-eerst methode. Dus hij gaat random een beweging genereren,
> controleren of hij die mag doen, stel dat het lege blokje uiterst links
> staat en hij wil links bewegen dan mag hij dat niet. En dat doen tot wanneer
> je de juiste oplossing hebt. Als je op het einde zit keer je 1 knoop terug.
> Het is letterlijk het algoritme uit de cursus dus dat klopt wel degelijk ;)

Een zoekdiepte van 256000 moves? Dan werkt depth-first echt niet.

Waarschijnlijk blijft je algorithme een schuifje heen en weer schuiven.
Nadat hij dat zo'n miljoen keer heeft gedaan, zul je vast wel door je
geheugen heen zijn. En zo niet: dan schuift hij gewoon nog een miljoen
keer op en neer. De kans dat je toevallig de goede oplossing gokt is erg
klein. Depth-first werkt gewoon niet zo goed met onbeperkte zoekruimtes.

Probeer eens iterative deepening. Dat houdt in dat je een limiet aan
de diepte stelt. Als je dan binnen maximale diepte n niets vindt,
dan ga je het opnieuw proberen met (n+1) als maximale diepte.
Dit is in het algemeen een goede tussenvorm tussen geheugengebruik
(dat is veel minder dan breadth-first) en snelheid (die mislukte
diepten kosten niet veel extra tijd vergeleken met de tijd die de
juiste diepte kost en je zoekt nooit te diep).

Een extra optimalisatie is om nooit je vorige zet ongedaan te maken.

Met recursie is dit allemaal erg kort op te schrijven. 20-50 regels
moeten genoeg kunnen zijn voor de kern van je algorithme.

Sjoerd

PS: Heb ik de truk die je zelf had moeten uitvinden verklapt?
Technical Details
Message-ID: <418ab1de$0$41698$1b2cd167@news.wanadoo.nl>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!fr.ip.ndsoftware.net!news2.euro.net!postnews1.euro.net!news.wanadoo.nl!not-for-mail
References: <78vid.11544$Ze5.627756@phobos.telenet-ops.be> <Xns95978C98DB168castleamber@130.133.1.4> <0owid.11639$qg2.603190@phobos.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Thread: fcea4,dd7c42e12c67db1d
X-Google-Thread: 107324,dd7c42e12c67db1d
X-Google-Attributes: gidfcea4,gid107324,public
X-Google-Language: DUTCH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!fr.ip.ndsoftware.net!news2.euro.net!postnews1.euro.net!news.wanadoo.nl!not-for-mail
Date: Thu, 04 Nov 2004 23:49:01 +0100
From: "Sjoerd A. Schreuder" <sa_schreuder@wanadoo.nl>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)
X-Accept-Language: en-us, en
MIME-Version: 1.0
Newsgroups: be.comp.programming,nl.comp.programmeren
Subject: Re: java.lang.OutOfMemoryError
References: <78vid.11544$Ze5.627756@phobos.telenet-ops.be> <Xns95978C98DB168castleamber@130.133.1.4> <0owid.11639$qg2.603190@phobos.telenet-ops.be>
In-Reply-To: <0owid.11639$qg2.603190@phobos.telenet-ops.be>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 55
Message-ID: <418ab1de$0$41698$1b2cd167@news.wanadoo.nl>
Organization: Wanadoo
NNTP-Posting-Date: 04 Nov 2004 22:49:03 GMT
NNTP-Posting-Host: c3eea3f50.cable.wanadoo.nl
X-Trace: 1099608543 digger.euronet.nl 41698 62.234.63.80:1484
X-Complaints-To: abuse@wanadoo.nl