示例#1
0
 def test_sleep_variable(self):
     print("\n##############sleep_variable")
     d = Device(name="UnitTests.py",
                tests=True,
                sleepOn=True,
                onComputer=True,
                verbose=True)
     self.device(d)
     print(self.messageList)
     self.assertEqual(d.main().sort(), self.messageList.sort())
示例#2
0
from main import Device
import pandas as pd

#---------------收敛性-------------------

device = Device(numOfServer=8,
                numOfBank=3,
                numOfME=80,
                taskSize=[600, 1200],
                taskCycle=[0.8, 1.5],
                computationPowerOfServer=[18, 28],
                computationPowerOfME=[0.5, 1],
                coEfficient=[[0, 0], [2, 0.0008], [3, 0.001], [4, 0.005]])

device.initPosition()
device.proposedAlgorithm1()
systemCostEachIteration = device.systemCostEachIteration
potentialEachIteration = device.potentialEachIteration

writer = pd.ExcelWriter(r'numberresult/systemcost_potential_eachslot_1.xlsx')
df_data = pd.DataFrame(data={
    'systemcost': systemCostEachIteration,
    'potential': potentialEachIteration
})
df_data.to_excel(writer, 'sheet1')
writer.save()
示例#3
0
numOfBeneficalME = [[] for i in range(4)]
ratioOfOfflaoding = [[] for i in range(4)]
systemcost = [[] for i in range(5)]

all_numOfBeneficalME = []
all_ratioOfOfflaoding = []
all_systemcost = []

for r in range(round):

    for i in range(len(numOfMEArr)):

        print('----------------------Number of ME:{}-----------------------'.format(numOfMEArr[i]))

        device = Device(numOfServer=8, numOfBank=3, numOfME=numOfMEArr[i], taskSize=[600, 1200],
                        taskCycle=[0.8, 1.5], computationPowerOfServer=[18, 28], computationPowerOfME=[0.5, 1],
                        coEfficient=[[0, 0], [2, 0.0008], [3, 0.001], [4, 0.005]])

        device.initPosition()

        systemcost[4].append(device.getTotalCostOfLocal())
        print('Total cost of local:{}'.format(device.getTotalCostOfLocal()))

        device.proposedAlgorithm()
        numOfBeneficalME[0].append(device.numOfBenificialME())
        ratioOfOfflaoding[0].append(device.numOfOffloading() / device.numOfME)
        systemcost[0].append(device.getTotalCostOfAlgorithm())
        print('Total cost of algorithm:{}'.format(device.getTotalCostOfAlgorithm()))
        print('Number of benificail ME, offloaidng ratio in GAME:{0}, {1}'.format(numOfBeneficalME[0][i], ratioOfOfflaoding[0][i]))

        device.restoreState()
示例#4
0
 def test_rpi(self):
     print("rpi")
     d = Device(name="UnitTests.py", tests=True)
     self.device(d)
     self.assertEqual(d.main().sort(), self.messageList.sort())
示例#5
0
all_all_numOfIteration = []

for r in range(round):

    all_numOfIteration = []

    for j in range(len_numOfAP):

        numOfIteration = []

        for i in range(len_numOfMEArr):

            device = Device(numOfServer=numOfAP[j],
                            numOfBank=numOfBank[j],
                            numOfME=numOfMEArr[i],
                            taskSize=[600, 1200],
                            taskCycle=[0.8, 1.5],
                            computationPowerOfServer=[8, 16],
                            computationPowerOfME=[0.5, 1],
                            coEfficient=coefficient[j])

            device.initPosition()
            device.proposedAlgorithm1()
            print('Iteration times of algorithm:{}'.format(
                device.intertionTime))

            numOfIteration.append(device.intertionTime)

        all_numOfIteration.append(numOfIteration)

    all_all_numOfIteration.append(all_numOfIteration)
示例#6
0
 def test_normal_run(self):
     print("\n############normal_run")
     # test a normal run
     d = Device(name="UnitTests.py", tests=True, onComputer=True)
     self.device(d)
     self.assertEqual(d.main().sort(), self.messageList.sort())
示例#7
0
from NSGA2 import NSGA2
from main import Device
import time
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

#----------------------test----------------------------
start = time.time()  # 开始计时

device = Device(numOfServer=4,
                numOfBank=3,
                numOfME=40,
                taskSize=[200, 800],
                taskCycle=[0.5, 1.5],
                computationPowerOfServer=[10, 30],
                computationPowerOfME=[0.5, 1],
                coEfficient=[0.05, 0.004])
device.initPosition()
device.proposedAlgorithm()
print('System cost of all local:{}'.format(device.getTotalCostOfLocal()))
print('System cost of algorithm:{}'.format(device.getTotalCostOfAlgorithm()))
device.restoreState()
device.randomDecision()
print('System cost of random:{}'.format(device.getTotalCostOfAlgorithm()))
device.restoreState()

N = 60  # 种群规模
x_num = device.numOfME  # 决策变量个数
max_gen = 5000  # 最大进化代数
nsga = NSGA2(device,
             N=N,
示例#8
0
from GA import GA
from main import Device
import time
import matplotlib.pyplot as plt
import math

#----------------------test----------------------------
start = time.time()  # 开始计时

device = Device(numOfServer=8,
                numOfBank=3,
                numOfME=50,
                taskSize=[600, 1200],
                taskCycle=[0.8, 1.5],
                computationPowerOfServer=[18, 28],
                computationPowerOfME=[0.5, 1],
                coEfficient=[[0, 0], [2, 0.0008], [3, 0.001], [4, 0.005]])

device.initPosition()
device.proposedAlgorithm()
# print('System cost of all local:{}'.format(device.getTotalCostOfLocal()))
print('System cost of algorithm:{}'.format(device.getTotalCostOfAlgorithm()))
# device.restoreState()
# device.randomDecision()
# print('System cost of random:{}'.format(device.getTotalCostOfAlgorithm()))
# device.restoreState()

# -------------------------test GA algorithm--------------------------
N = 100  # 种群规模
M = 5  # 每一代前Mfitness的个体
x_num = device.numOfME  # 决策变量个数
示例#9
0
all_all_numOfIteration = []

for r in range(round):

    all_numOfIteration = []

    for j in range(len_numOfAP):

        numOfIteration = []

        for i in range(len_numOfMEArr):

            device = Device(numOfServer=numOfAP[j],
                            numOfBank=numOfBank[j],
                            numOfME=numOfMEArr[i],
                            taskSize=[600, 1200],
                            taskCycle=[datacycArr[j], datacycArr[j]],
                            computationPowerOfServer=[8, 16],
                            computationPowerOfME=[0.5, 1],
                            coEfficient=coefficient[j])

            device.initPosition()
            device.proposedAlgorithm1()

            numOfIteration.append(device.getPoA())

        all_numOfIteration.append(numOfIteration)

    all_all_numOfIteration.append(all_numOfIteration)

result = []
for i in range(len_numOfAP):
示例#10
0
# except exc.IntegrityError as error:
#     print(error)
#     print("資料庫中已經有一筆資料name='a01'")

# print('commit後')
# print(model)
# print('name:', model.name)
# print('id:', model.id)

# 打掉重練
db.drop_all()
db.create_all()

# 新增資料
for i in range(1, 2):
    device = Device(name='a0%d' % i,
                    longitude=121 + (i / 10),
                    latitude=23 + (i / 20))
    db.session.add(device)
    db.session.commit()
    for j in range(3):
        dht_log = DhtLog(timestamp=datetime.utcnow() + timedelta(minutes=1),
                         temperature=23 + (i / 10),
                         humidity=90 + +(i / 10),
                         device_id=device.id)
        db.session.add(dht_log)
    db.session.commit()
    print(device.dht_logs)

# 觀察資料庫內容
示例#11
0
import logging
import os
import random
import string
from datetime import datetime
from flask import Flask, render_template, redirect, session, request, flash, url_for
from flaskext.mysql import MySQL
from passlib.hash import argon2

from main import Device

device = Device()

logging.basicConfig(level=logging.DEBUG)
log = logging.getLogger("FLASK_LOG")

app = Flask(__name__)
app.secret_key = os.urandom(32)
mysql = MySQL()

# MySQL configurations
app.config['MYSQL_DATABASE_USER'] = '******'
app.config['MYSQL_DATABASE_PASSWORD'] = '******'
app.config['MYSQL_DATABASE_DB'] = 'ufee'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
mysql.init_app(app)

# Default sound -- override when sound is given
snd = None
player = None