Article View: be.comp.programming
Article #1925Re: java.lang.OutOfMemoryError
From: Sjoerd A. Schreuder
Date: Thu, 04 Nov 2004 22:49
Date: Thu, 04 Nov 2004 22:49
54 lines
3783 bytes
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-mailReferences:
<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