Toon posts:

Planningssoftware

Pagina: 1
Acties:

Verwijderd

Topicstarter
Heeft hier iemand wel eens nagedacht over een computer laten plannen?

De volgende situatie:
We hebben een vrijwilligersorganisatie met +-70 leden. We zijn iedere vrijdagavond open, met een vaste bezetting van 8 mensen barpersoneel/glazen, 4 mensen beveiliging, 2dj's en 1 lj.
Nu zou je de avonden dat mensen kunnen werken kunnen registreren in 'n databaseje, dus dat mensen van tevoren opgeven ik kan dan wel werken ik kan dan ook werken en verder zou je de mogelijkheid van een persoon kunnen registreren in diezelfde database, hij kan wel plaatjes draaien hij niet, hij kan licht doen, hij kan beveiliging draaien & glazen ophalen etc etc.

Stel je hebt al deze informatie netjes in 'n database staan. Op welke werkwijze zou je een computer dan het handigste al deze informatie kunnen rangschikken en een zo optimaal mogelijk werkrooster laten creeëren? Rekening houdend met de dagen dat mensen niet kunnen werken en de vereiste dat er op iedere avond minimaal 8 mensen barpersoneel/glazen etc etc zijn.

  • webinn
  • Registratie: Oktober 2002
  • Laatst online: 06-06-2025
met gantt charts

voorbeeld: http://www.smartdraw.com/examples/gantt/er_shifts.htm

Een gantt chart is per definitie een grafiek om de tijdsbesteding van verschillende personen, projecten.. aan te geven en wordt gebruikt door de grootste (en kleinste ;) ) bedrijven. Zeker een aanrader dus, en het oogt nog professioneel ook ;)

[ Voor 129% gewijzigd door webinn op 21-02-2006 17:09 ]


Verwijderd

Topicstarter
Da's inderdaad een leuke manier om alles grafisch weer te geven.
Ik wil alleen dus de computer de output laten uitrekenen zodat alles zo optimaal mogelijk gepland is.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-03 14:33

NMe

Quia Ego Sic Dico.

Het lijkt me dat je met een lichtelijk aangepaste versie van een algoritme om een Knapsack-problem op te lossen een heel eind komt. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Dat klinkt inderdaad goed, ik ga 't 's doorlezen bedankt!

Verwijderd

Ik ben atm bezig een vergelijkbaar systeem te maken. In mijn geval is de toko 4 dagen per week open, met 5 "functies" per dag. Medewerkers kunnen inloggen en intekenen op bepaalde diensten. Als iemand meerdere functies kan vervullen kan diegene zelf kiezen wat voor dienst hij wanneer doet, en hoef je dat zelf niet perse bij te houden.

Kan mn datamodel wel eens posten als je dat handig lijkt.

Verwijderd

Topicstarter
Alle hulp is welkom ;) dus laat maar komen

Verwijderd

Alstu :)
code:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
-- 
-- Table structure for table `dag`
-- 

CREATE TABLE `dag` (
  `nummer` int(11) NOT NULL default '0',
  `naam` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`nummer`),
  UNIQUE KEY `naam` (`naam`)
) TYPE=MyISAM;

-- 
-- Table structure for table `dienst`
-- 

CREATE TABLE `dienst` (
  `id` int(11) NOT NULL default '0',
  `naam` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;

-- 
-- Table structure for table `rooster`
-- 

CREATE TABLE `rooster` (
  `id` int(11) NOT NULL default '0',
  `datum` int(11) NOT NULL default '0',
  `dienst` int(11) NOT NULL default '0',
  `medewerker` int(11) NOT NULL default '0',
  `teRuil` tinyint(1) default NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;

-- 
-- Table structure for table `users`
-- 

CREATE TABLE `users` (
  `id` int(11) NOT NULL auto_increment,
  `user` varchar(15) NOT NULL default '',
  `pass` varchar(32) NOT NULL default '',
  `level` int(1) NOT NULL default '1',
  `voornaam` varchar(100) NOT NULL default '',
  `tussenvoegsel` varchar(100) NOT NULL default '',
  `achternaam` varchar(100) NOT NULL default '',
  `email` varchar(100) NOT NULL default '',
  `telefoon` varchar(15) NOT NULL default '',
  `adres` varchar(100) NOT NULL default '',
  `postcode` varchar(7) NOT NULL default '',
  `plaats` varchar(100) NOT NULL default '',
  `opmerking` text NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `user` (`user`)
) TYPE=MyISAM AUTO_INCREMENT=14 ;

In tabel 'dag' vul ik onder nummer het nummer van de dag in (date('w') ). Mijn php-script regelt vervolgens per week een tabelletje met alle dagen en diensten. Dit wordt gecombineerd met records in de database, en levert een plaatje als dit op:

Afbeeldingslocatie: http://img65.imageshack.us/img65/3329/roosteruitgeklapt2qt.th.png

Ben er zelf nog mee bezig though, dus ook hier is feedback leuk :)

  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 22:55
Ik geloof dat de topicstarter meer zoekt naar een manier om mensen automatisch in te delen, zodat hij dat niet zelf hoeft uit te zoeken.

Je kunt dit doen door een willekeurig tree-traversal algoritme te nemen (A* bijvoorbeeld), maar het is niet voor niets dat er bedrijven zijn die niets anders doen dan planningsprogramma's schrijven; het is geen lichte kost.

Verbouwing


Verwijderd

TS gaat voor zijn oplossing idd uit van doorgegeven beschikbaarheid. (...dus dat mensen van tevoren opgeven ik kan dan wel werken ik kan dan ook werken...). In het systeem wat ik aan het maken ben omzeil je het inplannen, omdat mensen dat zelf doen. Vandaar dat het me een nuttige toevoeging leek :)

  • engelbertus
  • Registratie: April 2005
  • Laatst online: 08-04 10:58
ik denk dat het verschil tussen jullie dan is dat bij de een iederen in de rij staat om te mogen werken op een bepaalde dag en bij de ander maar te bezien is of hij of zei weer genoeg personen bereid vindt om op een bepaalde dag te werken, op zo'n manier dat het werk eerlijk wordt verdeeld over alle vrijwilligers. ( je moet geen vrijwilliger worden als je er geen tijd voor hebt natuurlijk ;-))
Pagina: 1