Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7420481
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 29, 20262026-05-29T08:14:46+00:00 2026-05-29T08:14:46+00:00

I am making a simulation using python 2.6 + Simpy, about the subway system.

  • 0

I am making a simulation using python 2.6 + Simpy, about the subway system. here’s my code:

import sys
import random
from math import*
from math import ceil, log
from random import*
from random import random, uniform, seed, expovariate
from SimPy import*
from SimPy.Simulation import*
from math import ceil, log

totalusuarios = 0
cantgrupos=0
def triangulo(inf,sup,moda):
        return random.triangular((inf),(sup),(moda))

def geometric(q):
    if q == 1.0:
        return 1
    U = 1.0 - random.random()
    G = int(ceil(log(U) / log(1.0 - q)))    
    return G

# A class that represents the process of generation of Groups (arrivals)
class Generador(Process):
    def generar(self, prob,interarribo, porc_torniq, porc_taq, porc_maq, min, max, moda, tsertaq, tsertor, tsermaq, loncal):                       
        global totalusuarios
        global cantgrupos
        totalusuarios=0
        cantgrupos=0
        while True:
            size_g = geometric (prob)
            if (now()>loncal):
                cantgrupos+=1
                totalusuarios=totalusuarios+size_g
            for j in range (size_g):
                c = Customer(name = "Usuario%02d"%(j,))
                q = uniform (0,1)
                ##******************the userr go to the tourniquet-------------------------
                if (q<=porc_torniq): #the userr go to the tourniquet
                    activate(c,c.go_torn(min=min, max=max, moda=moda, tsertor=tsertor)) #el cliente se desplaza     
                ##******************the user walks to buy ticket on the office-------------------------     
                if (q>porc_torniq and q<=porc_torniq+porc_taq): #user go to ticket station to buy
                    activate(c,c.go_tickets(min, max, moda, tsertaq=tsertaq, tsertor=tsertor))

                ##******************the user walks to buy ticket machines-------------------------  
                if (q>porc_torniq+porc_taq): #user go to machines
                    activate(c,c.go_machines(min= min, max=max, moda=moda, tsermaq=tsermaq, tsertor=tsertor))
            t = expovariate(interarribo) #time between groups of users
            yield hold, self, t 

class Customer(Process):

    def move(self, min, max ,moda):
        t1= triangulo(min_, max_, moda_)
        yield hold, self,t1

    def go_torn(self, min, max ,moda, tsertor):
        move(min, max, moda)
        yield request, self, torniquete
        t2= expovariate(tsertor)
        yield hold, self, t2
        yield release, self, torniquete

    def go_tickets(self, min, max ,moda, tsertaq, tsertor):
        move(min, max, moda)
        yield request, self, taquilla
        t3= expovariate(tsertaq)
        yield hold, self, t3
        yield release, self, taquilla
        go_torn(self, min, max,moda, tsertor)

    def go_machines(self, min, max ,moda, tsermaq, tsertor):
        move(min, max, moda)
        yield request, self, taquilla
        t4= expovariate(tsermaq)
        yield hold, self, t4
        yield release, self, taquilla
        go_torn(self, min, max ,moda, tsertor)

 ## Experiment data ------------------------------
MedGru= 2.0
p= 1/MedGru
TasGru= 5.0
LonCor = 24.0
CanCor= 30
CanTor = 2
CanTaq=2
CanMaq=2
PorTor= 60.0/100.0
PorTaq= 20.0/100.0
PorMaq=20.0/100.0
MinDes= 0.1
MaxDes= 0.2
LonCal= 2.0*60
ModaDes= 0.15
TSerTaq= 1/0.35
TSerTor=1/0.1
TSerMaq= 1/0.5

## Model/Experiment ------------------------------
torniquete = Resource(capacity=CanTor, monitored=True, monitorType= Monitor)    
maquina = Resource(capacity=CanMaq, monitored=False)    
taquilla =  Resource(capacity=CanTaq, monitored=False)    
def simulate_():
    generador = Generador(name="Grupo")
    initialize() #inicializa el reloj de simulacion
    activate(generador,generador.generar(p, TasGru,PorTor, PorTaq, PorMaq, 
                                                                MinDes,MaxDes ,ModaDes, TSerTaq, TSerTor, TSerMaq, LonCal ))
    simulate(until=60*LonCor)
for i in range(CanCor):
    simulate_()
    print "Groups:",cantgrupos, "Users:",totalusuarios

The code consists of 4 functions in the User class scroll, which uses a triangular distribution to simulate displacement of a passenger inside the station, of the entrance to any area (ticket office, machines or tourniquets) and from one area to another, has a
triangularly distributed random term with parameters min, mode and Max minutes.

The time it takes to serve each passenger in a ticket office is a will distributed
TSerTaq exponentially with a half minutes. Each passenger using a vending machine
ticket is occupied during a random time exponentially distributed with mean TSerMaq
minutes. Pass through a turnstile each passenger takes a random time distributed
TSerTor exponentially with a half minutes.

When I try to run my code, it tells me the following message:

C:\Documents and Settings>python llegada.py
Traceback (most recent call last):
  File "llegada.py", line 111, in <module>
    simulate_()
  File "llegada.py", line 109, in simulate_
    simulate(until=60*LonCor)
  File "C:\Python26\SimPy\Globals.py", line 39, in simulate
    return sim.simulate(until = until)
  File "C:\Python26\SimPy\Simulation.py", line 689, in simulate
    a = nextev()
  File "C:\Python26\SimPy\Simulation.py", line 408, in _nextev
    resultTuple = nextEvent._nextpoint.next()
  File "llegada.py", line 65, in go_tickets
    move(min, max, moda)
NameError: global name 'move' is not defined

I do not understand what I’m doing wrong and why I move indicates that the object is not defined. Some help please

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-29T08:14:47+00:00Added an answer on May 29, 2026 at 8:14 am

    You want self.move() not move(). move() would be a top-level function in the module, hence Python’s complaint about not finding it as a global name; self.move() is a method on your class instance, which is what you actually have.

    All your other method calls need the self. prepended too.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

i am making 3D Simulation of Solar System for every planet i have an
I'm making a monte carlo simulation in C++ and I was using Boost for
I'm making an image viewer using openGL and I've run into a situation where
Here is the situation: I am making a small prog to parse server log
I'm making a simple learning simulation, where there are multiple organisms on screen. They're
Now here is my situation: I'm making a CMS. When links are clicked, i
I'm using C++ and GDI+ I'm going to be making a vector drawing application
I'm using UDP for a game that I am making, but this issue is
I have a situation where I am making ajax requests to a server from
I am making a java project and i am using JTable . The thing

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.