Re: Simpy-users Digest, Vol 19, Issue 1
<RCRamsdell <at> gldd.com>
2008-01-16 21:03:30 GMT
Hola, Yennifer. Your english is better than my spanish...
It might be helpful to see what exactly your simulation consists of. Do
you have a series of machines that need to work on the items being
produced? You say that the first machines in the production line have
different production times, do you have to assign specific times to
specific machines, or would it be enough to have the production time
follow a probability distribution?
My first instinct is to model the items being produced as Simpy
processes, and the machines as Simpy resources. But if the machines
have individual characteristics, then that will not work. Maybe model
the machines as Simpy processes, and the conveyor belts between machines
as Simpy levels that the machines put the items in when they are
finished?
Robert
> -----Original Message-----
> From: simpy-users-bounces <at> lists.sourceforge.net
> [mailto:simpy-users-bounces <at> lists.sourceforge.net] On Behalf
> Of Yennifer Santiago
> Sent: Tuesday, January 15, 2008 10:04 PM
> To: simpy-users <at> lists.sourceforge.net
> Subject: Re: [Simpy-users] Simpy-users Digest, Vol 19, Issue 1
>
> Hello... I don't speak a lot of english but here I'm...
>
> I'm develop a proyect about a simulation of a "production
> line" in SimPy, but I'm a new user of SimPy. Now, I have a
> problem, this"production line" has in its first stage 5
> machines that works in parallel for the manufacture of the
> product, each one of these machines presents different times
> of production and an operator for each one of them, the
> problem is that I don't know how including within the model
> this differentiation between the machines. If you can help me
> please I will thank for them.
>
> Yennifer Santiago
>
> On 1/15/08, simpy-users-request <at> lists.sourceforge.net
> <simpy-users-request <at> lists.sourceforge.net> wrote:
> > Send Simpy-users mailing list submissions to
> > simpy-users <at> lists.sourceforge.net
> >
> > To subscribe or unsubscribe via the World Wide Web, visit
> > https://lists.sourceforge.net/lists/listinfo/simpy-users
> > or, via email, send a message with subject or body 'help' to
> > simpy-users-request <at> lists.sourceforge.net
> >
> > You can reach the person managing the list at
> > simpy-users-owner <at> lists.sourceforge.net
> >
> > When replying, please edit your Subject line so it is more specific
> > than "Re: Contents of Simpy-users digest..."
> >
> >
> > Today's Topics:
> >
> > 1. SimPy waitevent activations (Srikanth)
> > 2. Re: SimPy waitevent activations (kgmuller)
> > 3. Beta-release of SimPy version 1.9 (kgmuller)
> > 4. ModeladoLineaDeProduccion (Yennifer Santiago)
> > 5. Simulation speed (Sunil Nakrani)
> >
> >
> >
> ----------------------------------------------------------------------
> >
> > Message: 1
> > Date: Fri, 21 Dec 2007 01:00:36 -0600
> > From: Srikanth <mppsrikanth <at> gmail.com>
> > Subject: [Simpy-users] SimPy waitevent activations
> > To: simpy-users <at> lists.sourceforge.net
> > Message-ID:
> > <bf245c000712202300l7c7ab77bg6f1a463ba6cbf128 <at> mail.gmail.com>
> > Content-Type: text/plain; charset="iso-8859-1"
> >
> > Hello,
> > I am a newbie user of SimPy and am new to simulation in general. I
> > have written a small SimPy program to understand how the signalling
> > via waitevent works. The following is the program:
> > #-------------------------------begin code
> > --------------------------------------------------
> > from SimPy.Simulation import *
> >
> > class Responder(Process) :
> > def respond(self,ev):
> > while True:
> > print "Inside respond() of %s"%self.name
> > yield waitevent,self,ev
> >
> > class Scheduler(Process):
> > def schedule(self):
> > resp1 = Responder("Responder 1")
> > resp2 = Responder("Responder 2")
> > resp3 = Responder("Responder 3")
> > sig = SimEvent()
> > while True:
> > activate(resp1,resp1.respond(sig))
> > activate(resp2,resp2.respond(sig))
> > activate(resp3,resp3.respond(sig))
> > sig.signal()
> > print "Sent a signal %s" %sig.name
> > yield hold,self,1
> >
> > def execute():
> > print "\n"*5
> > print "-"*10
> > initialize()
> > s = Scheduler()
> > activate(s,s.schedule())
> > simulate(until=1)
> >
> > if __name__ == '__main__':
> > execute()
> > #-------------------------------end code
> > -----------------------------------------------------
> >
> > For the sake of simplicity, I ran the simulation for one
> time click,
> > however, the results look similar for other iterations, too.
> > The following is the output
> > #-----------------------------------begin
> > output---------------------------------------------
> > Inside respond() of Responder 1
> > Inside respond() of Responder 1
> > Inside respond() of Responder 2
> > Inside respond() of Responder 3
> >
> > Sent a signal a_SimEvent
> >
> > Inside respond() of Responder 3
> > Inside respond() of Responder 2
> > Inside respond() of Responder 1
> >
> > #-----------------------------------end
> > output------------------------------------------------
> >
> > My question is this: why does the process execution method (PEM) of
> > the Responder 1 object get called twice the first time - I
> expected it
> > to be called only once. Any explanation that anyone on the list can
> > provide is greatly appreciated.
> > Thanks in advance.
> > Srikanth.
> > -------------- next part -------------- An HTML attachment was
> > scrubbed...
> >
> > ------------------------------
> >
> > Message: 2
> > Date: Fri, 21 Dec 2007 14:07:20 +0100
> > From: "kgmuller" <kgmuller <at> xs4all.nl>
> > Subject: Re: [Simpy-users] SimPy waitevent activations
> > To: "'Srikanth'" <mppsrikanth <at> gmail.com>,
> > <simpy-users <at> lists.sourceforge.net>
> > Message-ID: <200712211307.lBLD7NiR077892 <at> smtp-vbr6.xs4all.nl>
> > Content-Type: text/plain; charset="us-ascii"
> >
> > Srikanth,
> > you get this from the multiple activation of the Responder
> processes.
> > You should activate a Process instance only once.
> >
> > So, here is a better structure for your test:
> >
> > from SimPy.Simulation import *
> >
> > class Responder(Process) :
> > def respond(self,ev):
> > while True:
> > print "Inside respond() of %s"%self.name
> > yield waitevent,self,ev
> > print "%s got signal"%self.name
> >
> > class Scheduler(Process):
> > def schedule(self,ev):
> >
> > while True:
> > ev.signal ()
> > print "Sent a signal %s" %ev.name
> > yield hold,self,1
> >
> > def execute():
> > print "\n"*5
> > print "-"*10
> > initialize()
> > resp1 = Responder("Responder 1")
> > resp2 = Responder("Responder 2")
> > resp3 = Responder("Responder 3")
> > sig = SimEvent()
> > activate(resp1,resp1.respond(sig))
> > activate(resp2,resp2.respond(sig))
> > activate(resp3,resp3.respond(sig))
> > s = Scheduler()
> > activate(s,s.schedule(sig))
> > simulate(until=1)
> >
> > if __name__ == '__main__':
> > execute()
> >
> > When run, you get:
> >
> > ----------
> > Inside respond() of Responder 1
> > Inside respond() of Responder 2
> > Inside respond() of Responder 3
> > Sent a signal a_SimEvent
> > Responder 3 got signal
> > Inside respond() of Responder 3
> > Responder 2 got signal
> > Inside respond() of Responder 2
> > Responder 1 got signal
> > Inside respond() of Responder 1
> > Sent a signal a_SimEvent
> > Responder 1 got signal
> > Inside respond() of Responder 1
> > Responder 2 got signal
> > Inside respond() of Responder 2
> > Responder 3 got signal
> > Inside respond() of Responder 3
> >
> > Which is perfectly ok.
> >
> > Klaus
> >
> >
> > _____
> >
> > From: simpy-users-bounces <at> lists.sourceforge.net
> > [mailto:simpy-users-bounces <at> lists.sourceforge.net] On Behalf Of
> > Srikanth
> > Sent: Friday, December 21, 2007 8:01 AM
> > To: simpy-users <at> lists.sourceforge.net
> > Subject: [Simpy-users] SimPy waitevent activations
> >
> >
> > Hello,
> > I am a newbie user of SimPy and am new to simulation in general. I
> > have written a small SimPy program to understand how the signalling
> > via waitevent works. The following is the program:
> > #-------------------------------begin code
> > --------------------------------------------------
> > from SimPy.Simulation import *
> >
> > class Responder(Process) :
> > def respond(self,ev):
> > while True:
> > print "Inside respond() of %s"%self.name
> > yield waitevent,self,ev
> >
> > class Scheduler(Process):
> > def schedule(self):
> > resp1 = Responder("Responder 1")
> > resp2 = Responder("Responder 2")
> > resp3 = Responder("Responder 3")
> > sig = SimEvent()
> > while True:
> > activate(resp1,resp1.respond(sig))
> > activate(resp2,resp2.respond(sig))
> > activate(resp3,resp3.respond(sig))
> > sig.signal ()
> > print "Sent a signal %s" %sig.name
> > yield hold,self,1
> >
> > def execute():
> > print "\n"*5
> > print "-"*10
> > initialize()
> > s = Scheduler()
> > activate(s,s.schedule())
> > simulate(until=1)
> >
> > if __name__ == '__main__':
> > execute()
> > #-------------------------------end code
> > -----------------------------------------------------
> >
> > For the sake of simplicity, I ran the simulation for one
> time click,
> > however, the results look similar for other iterations, too.
> > The following is the output
> > #-----------------------------------begin
> > output---------------------------------------------
> > Inside respond() of Responder 1
> > Inside respond() of Responder 1
> > Inside respond() of Responder 2
> > Inside respond() of Responder 3
> >
> > Sent a signal a_SimEvent
> >
> > Inside respond() of Responder 3
> > Inside respond() of Responder 2
> > Inside respond() of Responder 1
> >
> > #-----------------------------------end
> > output------------------------------------------------
> >
> > My question is this: why does the process execution method (PEM) of
> > the Responder 1 object get called twice the first time - I
> expected it
> > to be called only once. Any explanation that anyone on the list can
> > provide is greatly appreciated.
> > Thanks in advance.
> > Srikanth.
> >
> >
> > -------------- next part -------------- An HTML attachment was
> > scrubbed...
> >
> > ------------------------------
> >
> > Message: 3
> > Date: Sun, 23 Dec 2007 08:05:50 +0100
> > From: "kgmuller" <kgmuller <at> xs4all.nl>
> > Subject: [Simpy-users] Beta-release of SimPy version 1.9
> > To: "'Simpy-Developer List'"
> <simpy-developer <at> lists.sourceforge.net>,
> > "'Simpy-Users List'" <simpy-users <at> lists.sourceforge.net>
> > Message-ID: <200712230705.lBN75vFo090891 <at> smtp-vbr8.xs4all.nl>
> > Content-Type: text/plain; charset="iso-8859-1"
> >
> > All:
> > It is our pleasure to announce the beta-release of SimPy
> 1.9. This is
> > for testing only.
> > SimPy 1.8 is still the stable/production version.
> >
> > Please, download, test and report any problems (or maybe
> even positive
> > feedback) to this list.
> >
> > This release makes improvements to event handling which
> should result
> > in significantly shorter execution times for large models
> (thousands
> > of
> > processes)
> > and models with a high percentage of cancel and passivate
> statements.
> >
> > The ideas for speed improvement came from three contributors:
> >
> > * Norm Matloff, (and his group of students) who, in a SimPy
> performance
> > improvement study, proposed removing the dictionary from
> the event list.
> >
> > * Tony Vignaux, who proposed marking and subsequently ignoring
> > cancelled event notices.
> >
> > * Klaus M?ller, who found the Python package "heapq" to
> give the best
> > event list
> > handling performance for a wide range of model types.
> >
> > We want to thank all the SimPy users who helped with testing and
> > profiling the new event handler. 1.9 would not have been
> possible without out you!
> >
> > =============================
> > Release notes for SimPy 1.9
> > =============================
> >
> > Additions
> > =========
> >
> > - ``start``, a new method of activating processes.
> >
> > - a standard identifier, ``ACTIONS`` for Process Execution methods
> > to allows a succinct use of ``start``.
> >
> > - A method returning the time-weighted variance of observations
> > has been added to classes ``Monitor`` and ``Tally``.
> >
> > - ``TheBank2`` tutorial has been extended to give a model of
> > ``interrupt``.
> >
> >
> > Changes to code and documentation
> > =================================
> >
> > - The event scheduler has been completely re-designed to speed up
> > event handling.
> >
> > - The Manual has edited to use a more readable notation.
> >
> > Repairs
> > =======
> >
> > - The tracing of ``activate`` statements by ``SimuLationTrace.py``
> > has been enabled again.
> >
> >
> >
> ----------------------------------------------------------------------
> > --
> > (end of Release Notes)
> >
> > Enjoy!
> >
> > Best wishes for happy, productive SimPying in 2008!
> >
> > Klaus Muller TonyVignaux Bob Helmbold
> >
> >
> >
> >
> > ------------------------------
> >
> > Message: 4
> > Date: Tue, 15 Jan 2008 16:46:18 -0400
> > From: "Yennifer Santiago" <yennifersantiago <at> gmail.com>
> > Subject: [Simpy-users] ModeladoLineaDeProduccion
> > To: simpy-users <at> lists.sourceforge.net
> > Message-ID:
> > <41bc705b0801151246w4e7ccba5nd487cca72e416adc <at> mail.gmail.com>
> > Content-Type: text/plain; charset=ISO-8859-1
> >
> > Hola...
> > Estoy realizando un proyecto que trata de la simulaci?n de
> una linea
> > de producci?n haciendo uso de Simpy. Ahora tengo un problema, esta
> > l?nea de producci?n cuenta en su primera etapa con 5 m?quinas que
> > trabajan en forma paralela para la fabricaci?n del
> producto, cada una
> > de estas m?quinas presenta tiempos de producci?n distintos y un
> > operador para cada una de ellas, el problema es que no se
> como abarcar
> > dentro del modelo esta diferenciaci?n entre las m?quinas.
> Si me pueden
> > ayudar por favor se los agradecer?.
> >
> >
> >
> > ------------------------------
> >
> > Message: 5
> > Date: Tue, 15 Jan 2008 19:47:55 -0500
> > From: "Sunil Nakrani" <Sunil.Nakrani <at> keble.oxon.org>
> > Subject: [Simpy-users] Simulation speed
> > To: vignaux <at> users.sourceforge.net
> > Cc: simpy-users <at> lists.sourceforge.net
> > Message-ID:
> > <e5298f40801151647o381f9b2di1b2ae412dac7c11 <at> mail.gmail.com>
> > Content-Type: text/plain; charset=ISO-8859-1
> >
> > Dear Tony,
> >
> > Please forgive me for this intrusion. I have been reading excellent
> > tutorial on SimPy by Prof. Matloff in context of developing a
> > simulation model of a system that is likely to scale in increasing
> > level of complexity in terms of number of system components and
> > communication interaction amongst them.
> >
> > Since the tutorial on page 9 (titled " Introduction to
> Discrete-Event
> > Simulation and the SimPy Language" states that "A
> disadvantage is that
> > SimPy, in fact python in general, cannot run in parallel
> manner or on
> > multiprocessor machine."
> >
> > What are your thoughts on using SimPy for the problem I
> have at hand.
> > I envisage developing a simulation model of a problem that
> will likely
> > to have upto 75-100 processes interacting amongst themselves. What
> > would be the impact on the execution speed of a simulation run were
> > SimPy to be used? Are there examples of SimPy being used for this
> > level of complexity given that it cannot run in parallel or
> > multiprocessor machine?
> >
> > Again, forgive me for the intrusion. I would very much
> appreciate your
> > thoughts.
> >
> > Many thanks...Sunil
> >
> > --
> > Sunil Nakrani
> > e-mail: Sunil.Nakrani <at> keble.oxon.org
> >
> >
> >
> > ------------------------------
> >
> >
> ----------------------------------------------------------------------
> > --- This SF.net email is sponsored by: Microsoft Defy all
> challenges.
> > Microsoft(R) Visual Studio 2008.
> > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> >
> > ------------------------------
> >
> > _______________________________________________
> > Simpy-users mailing list
> > Simpy-users <at> lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/simpy-users
> >
> >
> > End of Simpy-users Digest, Vol 19, Issue 1
> > ******************************************
> >
>
> --------------------------------------------------------------
> -----------
> This SF.net email is sponsored by: Microsoft Defy all
> challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Simpy-users mailing list
> Simpy-users <at> lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/simpy-users
>
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/