1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | set TABLES; set DAYS; set PERSONS; var location{p in PERSONS, t in TABLES, d in DAYS}, binary; var peoplemeet{p1 in PERSONS, p2 in PERSONS, t in TABLES, d in DAYS}, binary; minimize find_feasible: 1; subject to nevermorethantwiceatsameplace{p in PERSONS, t in TABLES}: sum{d in DAYS} location[p,t,d] <= 2; subject to alwaysatoneplace{p in PERSONS, d in DAYS}: sum{t in TABLES} location[p,t,d] = 1; subject to meeting{p1 in PERSONS, p2 in PERSONS, d in DAYS, t in TABLES : p1<p2}: 2*peoplemeet[p1,p2,t,d] <= location[p1,t,d]+location[p2,t,d]; subject to everybodymeets{p1 in PERSONS, p2 in PERSONS : p1<p2}: sum{t in TABLES, d in DAYS} peoplemeet[p1,p2,t,d] >= 1; subject to maxtablesize{d in DAYS, t in TABLES}: sum{p in PERSONS} location[p,t,d] = 2; solve; for{p in PERSONS} { for{d in DAYS} { for{t in TABLES : location[p,t,d] == 1} { printf "Persoon %s op dag %s aan tafel %s\n", p, d, t; } } } data; set TABLES := 1 2 3 4; set DAYS := 1 2 3 4 5 6 7; set PERSONS := 1 2 3 4 5 6 7 8; end; |
1 | C:\glpk\bin>glpsol.exe --math file.txt |
Shoot.quote:
Ik ben het aan het proberen, hopelijk komt er iets moois uit. Wat is 'even'?quote:Op woensdag 13 april 2011 19:44 schreef GlowMouse het volgende:
Deze post heb ik eerder eens gemaakt voor een vergelijkbaar probleem:
Het model zet je in een tekstbestand (zeg file.txt)
[ code verwijderd ]
Daarna krijg je met dit commando na een tijdje of er een dergelijk eetschema bestaat. Kan even duren overigens
[ code verwijderd ]
Dan speelt niet iedereen tegen iedereen.quote:
Ik denk niet dat je lang hoeft te wachten.quote:Op woensdag 13 april 2011 19:51 schreef Habork het volgende:
[..]
Ik ben het aan het proberen, hopelijk komt er iets moois uit. Wat is 'even'?
Hij draait nu, 300.0 secs. Heb de tijd nog dus. Als ik zo naar de code kijk begrijp ik dat het algoritme gewoon blijft proberen totdat hij een goed schema heeft?quote:Op woensdag 13 april 2011 19:57 schreef GlowMouse het volgende:
[..]
Dan speelt niet iedereen tegen iedereen.
[..]
Ik denk niet dat je lang hoeft te wachten.
Dezelfde als jij gegeven hebt alleen het aantal tafels aangepast:quote:Op woensdag 13 april 2011 20:04 schreef GlowMouse het volgende:
Hij doet het wel iets slimmer; de theorie staat oa. in http://www.rpi.edu/~mitchj/papers/mitche2.pdf
Welke inputfile heb je gemaakt?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | set TABLES; set DAYS; set PERSONS; var location{p in PERSONS, t in TABLES, d in DAYS}, binary; var peoplemeet{p1 in PERSONS, p2 in PERSONS, t in TABLES, d in DAYS}, binary; minimize find_feasible: 1; subject to nevermorethantwiceatsameplace{p in PERSONS, t in TABLES}: sum{d in DAYS} location[p,t,d] <= 2; subject to alwaysatoneplace{p in PERSONS, d in DAYS}: sum{t in TABLES} location[p,t,d] = 1; subject to meeting{p1 in PERSONS, p2 in PERSONS, d in DAYS, t in TABLES : p1<p2}: 2*peoplemeet[p1,p2,t,d] <= location[p1,t,d]+location[p2,t,d]; subject to everybodymeets{p1 in PERSONS, p2 in PERSONS : p1<p2}: sum{t in TABLES, d in DAYS} peoplemeet[p1,p2,t,d] >= 1; subject to maxtablesize{d in DAYS, t in TABLES}: sum{p in PERSONS} location[p,t,d] = 2; solve; for{p in PERSONS} { for{d in DAYS} { for{t in TABLES : location[p,t,d] == 1} { printf "Persoon %s op dag %s aan tafel %s\n", p, d, t; } } } data; set TABLES := 1 2 3 4 5 6 7; set DAYS := 1 2 3 4 5 6 7; set PERSONS := 1 2 3 4 5 6 7 8; end; |
In de 8e speelronde speelt ieder team tegen een team waar ze al een keer tegen gespeeld hebben. Ik begreep uit de constraints dat dit geen mogelijkheid is dus dat kan ik er zelf naderhand makkelijk bij verzinnen.quote:Op woensdag 13 april 2011 20:30 schreef GlowMouse het volgende:
even de vertaling maken:
-8 teams PERSONS
-8 speelrondes DAYS
-8 verschillende spellen TABLES
Voor de overzichtelijkheid hernoem je alles. Ik snap niet waarom je TABLES en DAYS maar tot 7 laat lopen.
En nu de constraints aflopen:
subject to nevermorethantwiceatsameplace{p in PERSONS, t in TABLES}:
sum{d in DAYS} location[p,t,d] <= 2;
dit zou =1 moeten zijn.
Je eist nu dat ze in de eerste 7 rondes telkens tegen iemand anders spelen. Dat is een sterkere eis dan aanvankelijk gesteld.quote:In de 8e speelronde speelt ieder team tegen een team waar ze al een keer tegen gespeeld hebben.
if ($_SESSION['G_name']=="empty") { ???quote:if(iets wat waar is als iemand niet is ingelogd) {
include('file.inc.php');
}
Eh, wat snap je niet aan wat hij zei?quote:Op woensdag 13 april 2011 20:55 schreef MrNiles het volgende:
[..]
if ($_SESSION['G_name']=="empty") { ???
zoiets maar dan goed
Ergen op je pagina bepaal je of iemand is ingelogd de ja of de nee. Waarschijnlijk komt daar een boolean uitgerold. Bijvoorbeeld $loginquote:Op woensdag 13 april 2011 20:55 schreef MrNiles het volgende:
[..]
if ($_SESSION['G_name']=="empty") { ???
zoiets maar dan goed
iets wat waar is, is dat $_session['G_name'] empty isquote:Op woensdag 13 april 2011 20:57 schreef Tegan het volgende:
[..]
Eh, wat snap je niet aan wat hij zei?
http://lmgtfy.com?q=php+emptyquote:Op woensdag 13 april 2011 20:59 schreef MrNiles het volgende:
[..]
iets wat waar is, is dat $_session['G_name'] empty is
maar hoe schrijf ik dat op dat php dat snapt
if(!(isset($_SESSION['G_name'])))quote:Op woensdag 13 april 2011 20:59 schreef MrNiles het volgende:
[..]
iets wat waar is, is dat $_session['G_name'] empty is
maar hoe schrijf ik dat op dat php dat snapt
?? Ik programmeer net 'n weekje in PHP dus ben hier niet bekend mee. Heb je 'n paar linkjes/zoektermen voor me?quote:Op woensdag 13 april 2011 21:15 schreef GlowMouse het volgende:
Gevaarlijk bij shared hosting, waar het niet moeilijk is om sessie-vars in te stellen.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |