Пример #1
0
def simulateArrivalChargePorts():

    arrivalRate = 3
    initialChargePorts = 1

    arrivalRateStep = 0
    chargePortStep  = 5

    chargePortCycles = 5
    arrivalRateCycles = 1

    numRunsPerIteration = 3

    heatMap = [ ]

    # gen 1st row of heatMap
    # for now just write the name of the algorithm in by hand for cell (0,0)
    row1 = [ "DSAC" ]

    numChargePorts = initialChargePorts

    for a in range( 1, chargePortCycles + 1 ):
        row1.append( numChargePorts )
        numChargePorts += chargePortStep

    heatMap.append( row1 )

    for i in range( arrivalRateCycles ):
        poissonGen.setArrivalRate( arrivalRate )
        numChargePorts = initialChargePorts

        heatMapRow = [ arrivalRate ]

        for j in range( chargePortCycles ):

            chargePorts.setNumChargePorts( numChargePorts )
            averageProfit = 0

            for k in range( numRunsPerIteration ):

                gc.collect()
                # print "--------------------------"

                simulationInterval = poissonGen.simulateInterval()

                # test one algorithm at a time
                singleTestData = dsac.simulate( simulationInterval )

                # increment profit in spot
                averageProfit += singleTestData[ 0 ]

            # get average 
            averageProfit /= ( 1.0 * numRunsPerIteration )

            heatMapRow.append( averageProfit )
            numChargePorts += chargePortStep

        heatMap.append( heatMapRow )
        arrivalRate += arrivalRateStep

    return heatMap
Пример #2
0
        edfACProData = edf_AC_Pro.simulate(simulationInterval)

        #----------------llfSimple----------------
        llfSimpleData = llfSimple.simulate(simulationInterval)

        llfSimpleACBasicData = llfSimple_AC_Basic.simulate(simulationInterval)

        llfSimpleACProData = llfSimple_AC_Pro.simulate(simulationInterval)

        #----------------llfSmart----------------
        llfSmartData = llfSmart.simulate(simulationInterval)

        llfSmartACBasicData = llfSmart_AC_Basic.simulate(simulationInterval)

        #----------------dsac----------------
        dsacData = dsac.simulate(simulationInterval)

        # common.vehicleIdsIn2DList( simulationInterval )

        runData = [
            fcfsData, fcfsACData, edfData, edfACBasicData, edfACProData,
            llfSimpleData, llfSimpleACBasicData, llfSimpleACProData,
            llfSmartData, llfSmartACBasicData, dsacData
        ]

        runProfits = [0] * 11
        runSuccessRates = [0] * 11
        runElapsedTimes = [0] * 11
        runSuccessRatesWithDeclined = [0] * 11

        for index, algoData in enumerate(runData):
Пример #3
0
def simulateArrivalChargePorts():

    arrivalRate = 3
    initialChargePorts = 1

    arrivalRateStep = 0
    chargePortStep = 5

    chargePortCycles = 5
    arrivalRateCycles = 1

    numRunsPerIteration = 3

    heatMap = []

    # gen 1st row of heatMap
    # for now just write the name of the algorithm in by hand for cell (0,0)
    row1 = ["DSAC"]

    numChargePorts = initialChargePorts

    for a in range(1, chargePortCycles + 1):
        row1.append(numChargePorts)
        numChargePorts += chargePortStep

    heatMap.append(row1)

    for i in range(arrivalRateCycles):
        poissonGen.setArrivalRate(arrivalRate)
        numChargePorts = initialChargePorts

        heatMapRow = [arrivalRate]

        for j in range(chargePortCycles):

            chargePorts.setNumChargePorts(numChargePorts)
            averageProfit = 0

            for k in range(numRunsPerIteration):

                gc.collect()
                # print "--------------------------"

                simulationInterval = poissonGen.simulateInterval()

                # test one algorithm at a time
                singleTestData = dsac.simulate(simulationInterval)

                # increment profit in spot
                averageProfit += singleTestData[0]

            # get average
            averageProfit /= (1.0 * numRunsPerIteration)

            heatMapRow.append(averageProfit)
            numChargePorts += chargePortStep

        heatMap.append(heatMapRow)
        arrivalRate += arrivalRateStep

    return heatMap
Пример #4
0
        edfACProData = edf_AC_Pro.simulate( simulationInterval )

        #----------------llfSimple----------------
        llfSimpleData = llfSimple.simulate( simulationInterval )

        llfSimpleACBasicData = llfSimple_AC_Basic.simulate( simulationInterval )

        llfSimpleACProData = llfSimple_AC_Pro.simulate( simulationInterval )

        #----------------llfSmart----------------
        llfSmartData = llfSmart.simulate( simulationInterval )

        llfSmartACBasicData = llfSmart_AC_Basic.simulate( simulationInterval )

        #----------------dsac----------------
        dsacData = dsac.simulate( simulationInterval )

        # common.vehicleIdsIn2DList( simulationInterval )

        runData = [ fcfsData , fcfsACData, edfData , edfACBasicData , edfACProData , llfSimpleData , llfSimpleACBasicData , llfSimpleACProData , llfSmartData , llfSmartACBasicData , dsacData ]

        runProfits = [ 0 ] * 11
        runSuccessRates = [ 0 ] * 11
        runElapsedTimes = [ 0 ] * 11
        runSuccessRatesWithDeclined = [ 0 ] * 11

        for index , algoData in enumerate( runData ):
            runProfits[ index ] = algoData[ 0 ]
            runSuccessRates[ index ] = ( 1.0 * algoData[ 1 ] ) / ( algoData[ 1 ] + algoData[ 2 ] ) 
            runSuccessRatesWithDeclined[ index ] = ( 1.0 * algoData[ 1 ] ) / algoData[ 4 ]
            runElapsedTimes[ index ] = algoData[ 5 ]