abonnement Unibet Coolblue
pi_95457395
Misschien kunnen jullie me hier helpen met mijn volgende probleem:

Ik ben op zoek naar een algoritme (Liefst Excel, Matlab of php) dat gebruikt kan worden om een wedstrijdschema te genereren. Hierbij zit ik aan de volgende eisen vast:

-8 teams
-8 speelrondes
-8 verschillende spellen
-Elk team speelt elk spel exact een keer.
-Elk team speelt tegen elk ander team en tegen 1 team dubbel (dit mag willekeurig zijn).

Ik heb al verschillende dingen gevonden alleen dat zijn halve toernooien met dezelfde spellen, dus niet de eis dat elk team alk spel een keer speelt.

Iemand hier goede ideeen?
  woensdag 13 april 2011 @ 19:43:31 #252
75592 GlowMouse
l'état, c'est moi
pi_95457571
Dit kan heel makkelijk met glpk.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  woensdag 13 april 2011 @ 19:44:59 #253
75592 GlowMouse
l'état, c'est moi
pi_95457651
Deze post heb ik eerder eens gemaakt voor een vergelijkbaar probleem:

Het model zet je in een tekstbestand (zeg file.txt)
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;
Daarna krijg je met dit commando na een tijdje of er een dergelijk eetschema bestaat. Kan even duren overigens :P
1C:\glpk\bin>glpsol.exe --math file.txt
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  woensdag 13 april 2011 @ 19:47:09 #254
84244 Scorpie
Abject en infaam!
pi_95457796
quote:
Op maandag 11 april 2011 15:21 schreef -Datdus- het volgende:
Heeft iemand hier verstand van CakePHP
Shoot.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_95458060
quote:
1s.gif 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 :P

[ code verwijderd ]

Ik ben het aan het proberen, hopelijk komt er iets moois uit. Wat is 'even'?
  woensdag 13 april 2011 @ 19:57:50 #257
75592 GlowMouse
l'état, c'est moi
pi_95458458
quote:
1s.gif Op woensdag 13 april 2011 19:53 schreef Tegan het volgende:
http://www.konkuri.com/ ?
Dan speelt niet iedereen tegen iedereen.
quote:
2s.gif 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'?
Ik denk niet dat je lang hoeft te wachten.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_95458542
quote:
1s.gif 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.
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?
  woensdag 13 april 2011 @ 20:04:16 #259
75592 GlowMouse
l'état, c'est moi
pi_95458797
Hij doet het wel iets slimmer; de theorie staat oa. in http://www.rpi.edu/~mitchj/papers/mitche2.pdf

Welke inputfile heb je gemaakt?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_95458860
quote:
1s.gif 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?
Dezelfde als jij gegeven hebt alleen het aantal tafels aangepast:

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;

Of had ik meer moeten wijzigen?
  woensdag 13 april 2011 @ 20:30:52 #261
75592 GlowMouse
l'état, c'est moi
pi_95460385
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.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_95460793
ik wil een include niet laten zien als er niet is ingelogd
hoe doe ik dat?
waarschijnlijk met if..maar hoe?
  woensdag 13 april 2011 @ 20:37:04 #263
75592 GlowMouse
l'état, c'est moi
pi_95460825
if(iets wat waar is als iemand niet is ingelogd) {
include('file.inc.php');
}
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_95461062
quote:
1s.gif 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.
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.
  woensdag 13 april 2011 @ 20:48:35 #265
75592 GlowMouse
l'état, c'est moi
pi_95461572
quote:
In de 8e speelronde speelt ieder team tegen een team waar ze al een keer tegen gespeeld hebben.
Je eist nu dat ze in de eerste 7 rondes telkens tegen iemand anders spelen. Dat is een sterkere eis dan aanvankelijk gesteld.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_95462042
quote:
if(iets wat waar is als iemand niet is ingelogd) {
include('file.inc.php');
}
if ($_SESSION['G_name']=="empty") { ???
zoiets maar dan goed
pi_95462135
quote:
1s.gif Op woensdag 13 april 2011 20:55 schreef MrNiles het volgende:

[..]

if ($_SESSION['G_name']=="empty") { ???
zoiets maar dan goed
Eh, wat snap je niet aan wat hij zei?
  woensdag 13 april 2011 @ 20:59:36 #268
302853 themole
graaft totaal door.
pi_95462273
quote:
1s.gif 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 $login

if($login){doe leuke dingen}else{loginscherm/andere leuke dingen}
Niet altijd serieus
pi_95462287
quote:
7s.gif Op woensdag 13 april 2011 20:57 schreef Tegan het volgende:

[..]

Eh, wat snap je niet aan wat hij zei?
iets wat waar is, is dat $_session['G_name'] empty is
maar hoe schrijf ik dat op dat php dat snapt
pi_95462396
quote:
6s.gif 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
http://lmgtfy.com?q=php+empty

Tip: De string "empty" matcht in ieder geval niet op een lege variable.
pi_95462500
Volgens mij had hij dat tweede al wel door. Maar verder wat jij zegt :P.
pi_95463056
quote:
6s.gif 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'])))
  woensdag 13 april 2011 @ 21:15:43 #273
75592 GlowMouse
l'état, c'est moi
pi_95463202
Gevaarlijk bij shared hosting, waar het niet moeilijk is om sessie-vars in te stellen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_95463331
quote:
1s.gif 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.
?? Ik programmeer net 'n weekje in PHP dus ben hier niet bekend mee. Heb je 'n paar linkjes/zoektermen voor me?

Edit:
Laat maar, snap volgens mij al wat je bedoelt.
  woensdag 13 april 2011 @ 21:50:37 #275
302853 themole
graaft totaal door.
pi_95465488
Altijd gebruik maken van meerdere checks voordat iemand is ingelogd. Alleen sessies is niet goed, alleen cookie ook niet. Maak zelf altijd gebruik van sessie => cookie => database. :)
Niet altijd serieus
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')