Lineaire programmering: schaakbordprobleem

Moderators: dirkwb, Xilvo

Forumregels
(Middelbare) school-achtige vragen naar het forum "Huiswerk en Practica" a.u.b.
Zie eerst de Huiswerkbijsluiter
Reageer
Gebruikersavatar
Berichten: 824

Lineaire programmering: schaakbordprobleem

Probleem: Zet 8 koninginnen op een schaakbord, zodanig dat geen enkele koningin een andere koningin kan slaan.

Liefst zag ik dit opgelost met behulp van lineaire programmering.

Ik heb het volgende al bedacht:

Afbeelding

waarbij xi,j = 1 als er een koningin staat in de i-de rij, in de j-de kolom van het schaakbord met i,j in {1,...,8}.

De eerste beperking legt op dat er exact 8 koninginnen op het bord moeten staan. De tweede beperking zegt dat er maar één koningin per rij mag. De derde zegt hetzelfde, maar dan voor kolommen. Het enige wat ik nu nog moet modelleren is dat koninginnen niet op dezelfde diagonaal mogen staan, maar ik weet niet precies hoe ik dat moet aanpakken.
Be careful whose advice you buy, but be patient with those who supply it.

Berichten: 582

Re: Lineaire programmering: schaakbordprobleem

Even een kleine opmerking... Jouw laatste 2 ongelijkheden, daar zou ik gelijkheden van maken. Er moet immers in elke rij en elke kolom ZEKER één koningin staan.

Straks denk ik wel eens over het 2de deel van het probleem (als ik wat meer tijd heb).

Berichten: 582

Re: Lineaire programmering: schaakbordprobleem

Ik bedacht me net dat dit een standaardprobleem is, en dat ik het ook ooit heb moeten oplossen tijdens mijn studie. Aangezien ik niet met zekerheid weet wat jij precies wenst te bereiken (qua efficiëntie van je oplossing), kan je misschien beter eerst zelf wat inspiratie opdoen uit volgende links:

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

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

Gebruikersavatar
Berichten: 824

Re: Lineaire programmering: schaakbordprobleem

Burgie schreef:Even een kleine opmerking... Jouw laatste 2 ongelijkheden, daar zou ik gelijkheden van maken. Er moet immers in elke rij en elke kolom ZEKER één koningin staan.

Straks denk ik wel eens over het 2de deel van het probleem (als ik wat meer tijd heb).
Akkoord. Maar dat maakt in principe dan niet uit, de solver zal er uiteindelijk dezelfde oplossing geven denk ik. Gelijkheden staan echter wel sierlijker. In deze vorm is het inderdaad een "toewijzingsprobleem" zie ik net, maar er moeten nog extra beperkingen bij.

Edit: van die oplossingenlink kan ik weinig opmaken. Dat zijn allemaal talen die ik niet spreek. Maar desalniettemin waren ze nuttig :D
Be careful whose advice you buy, but be patient with those who supply it.

Reageer