Ejemplo n.º 1
0
 def __init__(self, data):
     self.averageFitness = 0     #Giá trị fitness hiện tại
     self.pastAverageFitness = 0 #Giá trị fitness trước đó dùng để so sánh với giá trị fitness vừa được tính
     self.running = True         #Trạng thái chạy của chương trình
     self.chromosomes = []       #Khởi tạo nhiễm sắc thể
     self.data = {               #Khởi tạo data gồm: Phòng học, Giảng viên, Sections, Sharing, Môn học
         'rooms': [],
         'instructors': [],
         'sections': [],
         'sharings': [],
         'subjects': []
     }
     self.stayInRoomAssignments = {}
     self.tournamentSize = .04
     self.elitePercent = .05
     self.mutationRate = .10     #Tỷ lệ đột biến
     self.lowVariety = 55
     self.highestFitness = 0     #Khởi tạo max
     self.lowestFitness = 100    #Khởi tạo min
     self.elites = []
     self.matingPool = []
     self.offsprings = []
     self.tempChromosome = None  #Khởi tạo biến tạm cho nhiễm sắc thể
     self.tempSections = None    #Khởi tạo biến tạm cho Sections
     self.data = data
     self.settings = Settings.getSettings() #Lấy các giá trị thiết lập ban đầu từ file settings.json
     self.stopWhenMaxFitnessAt = self.settings['maximum_fitness'] #Biến giữ giá trị trạng thái dừng của chương trình khi đạt giá trị fitness phù hợp
     super().__init__()
Ejemplo n.º 2
0
 def __init__(self, table, data=False):
     self.table = table
     header = [[
         'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'
     ]]
     with open('timeslots.json') as json_file:
         timeslots = json.load(json_file)['timeslots']
     settings = Settings.getSettings()
     header.append(
         timeslots[settings['starting_time']:settings['ending_time'] + 1])
     self.data = data
     if not data:
         self.data = []
         for i in range(settings['ending_time'] + 1 -
                        settings['starting_time']):
             self.data.append([
                 'Disponible', 'Disponible', 'Disponible', 'Disponible',
                 'Disponible', 'Disponible'
             ])
     self.model = TimetableModel(header, self.data)
     table.setModel(self.model)
     table.horizontalHeader().setSectionResizeMode(
         QtWidgets.QHeaderView.Fixed)
     table.verticalHeader().setSectionResizeMode(
         QtWidgets.QHeaderView.Fixed)
     table.clicked.connect(self.toggleCells)
     table.horizontalHeader().sectionClicked.connect(self.toggleCells)
     table.verticalHeader().sectionClicked.connect(self.toggleCells)
     table.findChild(QtWidgets.QAbstractButton).clicked.connect(
         self.toggleCells)
Ejemplo n.º 3
0
 def __init__(self, data):
     self.averageFitness = 0
     self.pastAverageFitness = 0
     self.running = True
     self.chromosomes = []
     self.data = {
         'rooms': [],
         'instructors': [],
         'sections': [],
         'subjects': []
     }
     self.stayInRoomAssignments = {}
     self.tournamentSize = .04
     self.elitePercent = .05
     self.mutationRate = .10
     self.lowVariety = 55
     self.highestFitness = 0
     self.lowestFitness = 100
     self.elites = []
     self.matingPool = []
     self.offsprings = []
     self.tempChromosome = None
     self.tempSections = None
     self.data = data
     self.settings = Settings.getSettings()
     self.stopWhenMaxFitnessAt = self.settings['maximum_fitness']
     super().__init__()
    def __init__(self, table, data=False):
        self.table = table
        header = [[
            'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'
        ]]
        with open('timeslots.json') as json_file:
            timeslots = json.load(json_file)['timeslots']
        settings = Settings.getSettings()
        header.append(
            timeslots[settings['starting_time']:settings['ending_time'] + 1])
        self.data = data
        if not data:
            self.data = []
            for i in range(settings['ending_time'] + 1 -
                           settings['starting_time']):
                self.data.append([
                    'Available', 'Available', 'Available', 'Available',
                    'Available', 'Available'
                ])
        self.model = TimetableModel(header, self.data)
        table.setModel(self.model)

        table.clicked.connect(self.toggleCells)

        table.findChild(QtWidgets.QAbstractButton).clicked.connect(
            self.toggleCells)
Ejemplo n.º 5
0
def generateRawTable():
    settings = Settings.getSettings()
    data = []
    for i in range(settings['ending_time'] + 1 - settings['starting_time']):
        data.append([
            'Disponible', 'Disponible', 'Disponible', 'Disponible',
            'Disponible', 'Disponible'
        ])
    return data
Ejemplo n.º 6
0
 def __init__(self, parent):
     super().__init__()
     self.parent = parent
     self.setupUi(parent)
     self.connectButtons()
     self.settings = Settings.getSettings()
     self.loadSettings()
     self.handleSettings()
     self.drawTrees()
     self.tabWidget.currentChanged.connect(self.tabListener)
     self.tabWidget.setCurrentIndex(0)
 def __init__(self, data):
     self.fitness = 0
     self.fitnessDetails = []
     self.data = {
         'sections': {},
         'instructors': {},
         'rooms': {},
         'unplaced': {
             'sections': {}
         }
     }
     self.rawData = data
     self.settings = Settings.getSettings()
     self.buildChromosome()
Ejemplo n.º 8
0
 def __init__(self):
     self.dialog = dialog = QtWidgets.QDialog()
     # Initialize custom dialog
     self.parent = parent = Parent.Ui_Dialog()
     # Add parent to custom dialog
     parent.setupUi(dialog)
     self.table = self.parent.tableResult
     self.run = True
     self.settings = Settings.getSettings()
     self.result = { 'data': [] }
     self.getLastResult()
     if self.run:
         self.parseResultDetails()
         self.connectWidgets()
         self.updateTable(0)
         dialog.exec_()
Ejemplo n.º 9
0
    def __init__(self, scenario, table, data):
        self.scenario = scenario
        self.table = table
        self.settings = settings = Settings.getSettings()
        self.build_model()
        MultiIndexHeaderView(Qt.Horizontal, table)
        MultiIndexHeaderView(Qt.Vertical, table)
        table.horizontalHeader().setSectionsMovable(
            True)  # reorder DataFrame columns manually

        # Set data
        table.setModel(self.model)
        table.resizeColumnsToContents()
        table.resizeRowsToContents()
        table.setFocusPolicy(QtCore.Qt.NoFocus)
        table.setSelectionMode(QtWidgets.QAbstractItemView.NoSelection)
        self.parseData(data)
 def __init__(self, table, data):
     self.table = table
     header = [[
         'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'
     ]]
     with open('timeslots.json') as json_file:
         self.timeslots = timeslots = json.load(json_file)['timeslots']
     self.settings = settings = Settings.getSettings()
     header.append(
         timeslots[settings['starting_time']:settings['ending_time'] + 1])
     temporaryData = []
     for i in range(settings['ending_time'] + 1 -
                    settings['starting_time']):
         temporaryData.append(['', '', '', '', '', ''])
     self.model = ScheduleParserModel(header, temporaryData)
     table.setModel(self.model)
     table.setFocusPolicy(QtCore.Qt.NoFocus)
     table.setSelectionMode(QtWidgets.QAbstractItemView.NoSelection)
     # table.horizontalHeader().setSectionResizeMode(QtWidgets.QHeaderView.Fixed)
     table.verticalHeader().setSectionResizeMode(
         QtWidgets.QHeaderView.Fixed)
     self.parseData(data)
 def __init__(self, scenario):
     self.averageFitness = 0
     self.pastAverageFitness = 0
     self.running = True
     self.data = {
         'rooms': [],
         'instructors': [],
         'sections': [],
         'subjects': []
     }
     self.tournamentSize = .04
     self.elitePercent = .05
     self.mutationRate = .10
     self.lowVariety = 55
     self.highestFitness = 0
     self.lowestFitness = 100
     self.scenario = scenario
     self.IND_INIT_SIZE = 100
     self.settings = Settings.getSettings()
     self.stopWhenMaxFitnessAt = self.settings['maximum_fitness']
     self.toolbox = base.Toolbox()
     super().__init__()
Ejemplo n.º 12
0
 def updateSettings(self, key, value, secondKey=False):
     Settings.setSettings(key, value, secondKey)
     self.settings = Settings.getSettings()
 def __init__(self, scenario):
     self.scenario = scenario
     self.settings = Settings.getSettings()
     self.init_empty_data()
     self.genrate_random_timetable()