Exemple #1
0
    def __init__(self, models):
        """
        :param models: either a sklearn model or a dictionary of models and their parameters.
        """
        print('Initializing MultiModel...')
        self._dm = DataManager()
        self._models = []
        init_str = ''
        if isinstance(models, dict):
            if 'load_from_file' in models.keys():
                lff = models['load_from_file']
            else:
                lff = False
            init_str = [mod.__name__ for mod in models['models'].keys()]

            for model, params in models['models'].items():
                self._models.append(
                    Model(
                        model,
                        self._dm,
                        params['fixed_parameters'],
                        params['optimizable_parameters']
                    )
                )

            if lff:
                self._models[-1].load_from_file()
        # Otherwise check if it's only a sklearn module.
        elif inspect.getmodule(models).__name__.split('.')[0] == 'sklearn':
            init_str = models.__name__
            self._models.append(Model(models, self._dm))
        print(f"Initialized a MultiModel with the following models : {init_str}")
Exemple #2
0
 def __init__(self, width, height, fps, speed, player_left, player_bottom):
     self.model = Model(width, height, speed)
     self.view = View(self.model, player_left, player_bottom)
     self.fps = fps
     self.clock = pygame.time.Clock()
     self.running = True
     self.start = True
     self.alive = False
Exemple #3
0
def main(args):
    path = args.train_path
    path_valid = args.dev_path
    print("read_data....")
    data = read_data(path)  # 训练集
    data_valid = read_data(path_valid)  # 验证集

    # 参数设置
    hidden_size = args.hidden_size
    char_size = args.convolutions
    embedding_size = args.embedding_size
    char_embed_size = args.char_embedding_size
    dropout = args.dropout
    kernel_size = args.kernel_size1
    type = args.modeling_type

    output, char_set = get_structure(data)
    output_valid, char_set_valid = get_structure(data_valid)

    for char in char_set_valid:
        char_set.add(char)
    print("get char id")

    char_output, char_to_int, int_to_char, n_char = get_index(output, char_set)
    question_set = get_question_set(output)

    char_output_valid, x, y, z = get_index(output_valid, char_set)
    question_set_valid = get_question_set(output_valid)

    print("get word embedding")
    word_dict_question = get_word_embeddings(question_set, embedding_size)
    word_dict_context = get_word_embeddings(output['contexts'], embedding_size)

    word_dict_question_valid = get_word_embeddings(question_set_valid, embedding_size)
    word_dict_context_valid = get_word_embeddings(output_valid['contexts'], embedding_size)

    dataLoader = DataLoader(output, char_output, word_dict_context, word_dict_question)
    dataLoader_valid = DataLoader(output_valid, char_output_valid, word_dict_context_valid,
                                  word_dict_question_valid)

    model = Model(embedding_size, char_size, hidden_size, kernel_size, n_char, type, char_embed_size,
                  dropout).cuda()

    epochs = args.epochs
    iterations = len(question_set)
    iterations_validation = len(question_set_valid)

    lossFunction = nn.CrossEntropyLoss()
    optimizer = optim.Adadelta(model.parameters(), lr=args.learning_rate)

    # 训练模型
    print("training model")
    train(model, dataLoader, lossFunction, optimizer, epochs, iterations, dataLoader_valid, iterations_validation)
Exemple #4
0
class Controller:
    def __init__(self, width, height, fps, speed, player_left, player_bottom):
        self.model = Model(width, height, speed)
        self.view = View(self.model, player_left, player_bottom)
        self.fps = fps
        self.clock = pygame.time.Clock()
        self.running = True
        self.start = True
        self.alive = False

    def run(self):
        self.view.show_start_screen()
        while self.running:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    self.running = False
            keys = pygame.key.get_pressed()
            if self.alive:
                if keys[K_LEFT]:
                    self.alive = self.model.left_key()
                if keys[K_RIGHT]:
                    self.alive = self.model.right_key()
                if keys[K_SPACE]:
                    self.model.space_key()
            if keys[K_RETURN]:
                self.model.restart()
                self.start = False
                self.alive = True
            elif keys[K_ESCAPE]:
                self.running = False
                continue

            if self.alive:
                self.model.update_game()
            self.clock.tick(self.fps)
Exemple #5
0
    def SendRequest(self,url,modelname):
        self.CurrentModule = Model(modelname)
        html = self.urlquest.GetHtml(url)
        htmlcode = self.urlquest.code
        self.CurrentModule.Prepare(url,html,htmlcode)

        diclist = self.GetAnalyzeDiclist(html)

        self.CurrentModule.Set("diclist",diclist)
        # 显示
        sm = SimpleModel(modelname,url)
        self.UI.AddModelHistory(sm)
        self.UI.ShowModule(self.CurrentModule)
        # 添加抓取历史记录(URL,模型名)
        self.AddModelHistory(modelname,url)
def create_model(sess,FLAGS,embedding_matrix):
    text_model=Model(FLAGS,embedding_matrix)
    ckpt=tf.train.get_checkpoint_state(FLAGS.ckpt_dir)
    if ckpt and ckpt.model_checkpoint_path:
        print("Restoring old model parameters from %s"%ckpt.model_checkpoint_path)
        text_model.saver.restore(sess,ckpt.model_checkpoint_path)
    return text_model
Exemple #7
0
    def __init__(self, *args, **kwargs):
        self.__confdic = {
                "confFilePath":'./Config/MainConf.json',
                "HistoryDicList":[]

        }
        self.Conf_load(self.__confdic)
        self.CurrentModule = Model("ModelName")
        # 请求
        self.Request = Request()
        self.urlquest = uq()

        # 解析
        self.Analyze = Analyze()
        
        return super().__init__(*args, **kwargs)
Exemple #8
0
def main():
    dataset, learning_rate, epoch, alpha, beta, gamma, pretrain_epoch = parse_argument(
    )
    random.seed(9001)

    dataset_config = {
        'feature_file': './Database/' + dataset + '/features.txt',
        'graph_file': './Database/' + dataset + '/edges.txt',
        'walks_file': './Database/' + dataset + '/walks.txt',
        'label_file': './Database/' + dataset + '/group.txt'
    }
    graph = Dataset(dataset_config)

    pretrain_config = {
        'net_shape': [6, 1],
        'att_shape': [1],
        'net_input_dim': graph.num_nodes,
        'att_input_dim': graph.num_feas,
        'pretrain_params_path': './Log/' + dataset + '/pretrain_params.pkl'
    }

    model_config = {
        'net_shape': [6, 1],
        'att_shape': [1],
        'net_input_dim': graph.num_nodes,
        'att_input_dim': graph.num_feas,
        'is_init': True,
        'pretrain_params_path': './Log/' + dataset + '/pretrain_params.pkl'
    }

    trainer_config = {
        'net_shape': [6, 1],
        'att_shape': [1],
        'net_input_dim': graph.num_nodes,
        'att_input_dim': graph.num_feas,
        'drop_prob': 0.2,
        'learning_rate': learning_rate,
        'batch_size': 100,
        'num_epochs': epoch,
        'beta': beta,
        'alpha': alpha,
        'gamma': gamma,
        'model_path': './Log/' + dataset + '/test_model.pkl',
    }

    print("=" * 30 + "开始进行参数预训练" + "=" * 30)
    pretrainer = PreTrainer(pretrain_config)
    pretrainer.pretrain(graph.X, 'net', pretrain_epoch)  # walks.txt的矩阵
    pretrainer.pretrain(graph.Z, 'att', pretrain_epoch)

    model = Model(model_config)
    trainer = Trainer(model, trainer_config)
    trainer.train(graph)
    train_emb = trainer.infer(graph)
    train_emb = np.array(train_emb)
    with open("./Log/" + dataset + "/train_emb.txt", 'w') as f:
        np.savetxt(f, train_emb)
Exemple #9
0
    def test_unbound(self):
        m = Model(print_obj={})

        a = m.add_var("real+", name="a")
        b = m.add_var("real+", name="b")

        m.maximize(3 * a - b)

        m.add_constraint(-3 * a + 3 * b <= 6)
        m.add_constraint(-8 * a + 4 * b <= 4)

        try:
            m.solve()
        except Unbounded as e:
            pass
        else:
            self.fail("Should raise Unbounded but didn't")
Exemple #10
0
    def add(self, model):
        # TODO add the ability to add an already optimized model.
        """
        Adds an sklearn model to the MultiModel

        :param model: The name of the sklearn model.
        """
        if inspect.getmodule(model).__name__.split('.')[0] == 'sklearn':
            print(f'Adding model {model.__name__}')
            self._models.append(Model(model), self._dm)
        else:
            raise TypeError('Parameter model should be an sklearn model, {model.__name__} given')
Exemple #11
0
 def start(self):
     self.model = Model()
     self.view = View()
     self.view.start_view() 
     self.create_a_contact('pedro','orozco','*****@*****.**')
     self.create_a_contact('luis','medrano')
     self.create_a_contact('luis','medrano')
     #self.delete_a_contact('juan','lopez')
     self.show_all_contacts()
     self.update_a_contact('juan','perez','luis','zapata','*****@*****.**','4424232312')
     self.show_all_contacts()
     self.show_a_contact('luis','zapata')
     self.view.end_view()
Exemple #12
0
    def ShowModule(self,tModel):
        self.CurrentModule = tModel
        if(isinstance(tModel, Model)==False):
            self.CurrentModule = Model(tModel)
        else:
            self.CurrentModule = tModel
        # 显示HTML和Diclist

        html = self.CurrentModule.Get("html")
        
        self.Content1.setPlainText(html)# setPlainText纯文本,settext富文本
        # 清空显示diclist的控件
        if(len(self.widgetlist_dic)!=0):
            for i,w in enumerate(self.widgetlist_dic):
                w.deleteLater()
                del self.widgetlist_dic[i]

        diclist = self.CurrentModule.Get("diclist")
        print(diclist)
        if(diclist!=[]):
            for i,dic in enumerate(diclist):
                dw = DiclistWidget(dic,i)
                self.widgetlist_dic.append(dw)
                self.ScroWidgetVBox.addWidget(dw)
Exemple #13
0
    def serialInput(book):
        """
        input for serialization
        :param book:
        :return:
        """

        read, write = Model().setTypeSerial()
        manager = input("1 - Load from the file\n"
                        "2 - Save to the file\n")
        if manager == "1":
            book.reload(read())
        elif manager == "2":
            write(book)
        else:
            print("Incorrect key pressed.")
Exemple #14
0
 def __init__(self):
     self.aid = None
     self.um_obj = Model()
     self.uv_obj = View()
Exemple #15
0
class Controller:
    def __init__(self):
        self.aid = None
        self.um_obj = Model()
        self.uv_obj = View()

    def admin_validate_control(self):
        admin_login = self.uv_obj.admin_login()
        email = admin_login[0]
        password = admin_login[1]
        #print(email)
        #print(password)

        # calling admin_validate method of Model class for admin
        data = self.um_obj.admin_validate(email, password)
        self.aid = data[0]
        em = data[1]
        pw = data[2]
        #print(aid, em, pw)

        if email == em and password == pw:  # admin validation
            admin_session = em
            print("---------------------------")
            print("Welcome To Admin Panel!")
            print("---------------------------")

            self.admin_control()  # if admin user name and password is correct,
            # it calls user_input() method to input data
        else:
            print("Incorrect UserName and Password!")

    def user_validate_control(self):
        user_login = self.uv_obj.user_login()
        email = user_login[0]
        password = user_login[1]
        # print(email, password)

        # calling admin_validate method of Model class for admin
        data = self.um_obj.user_validate(email, password)
        uid = data[0]
        ema = data[1]
        pwa = data[2]
        # print(ema, pwa)

        if email == ema and password == pwa:  # if true call user_input() method
            user_session = ema
            print("---------------------------")
            print("Welcome To User Panel!")
            print("---------------------------")
            user_data = self.um_obj.user_data_show(uid)
            self.uv_obj.user_output(user_data)
            edit = input("Do you want to edit (yes/no)?")
            if edit == "yes":
                edit_data = self.uv_obj.user_edit(user_data)
                update_user = self.um_obj.update_user(edit_data, uid)
                print(update_user)
            else:
                pass

        else:
            print("Incorrect UserName and Password! ")

    def admin_control(
        self
    ):  # to control which action admin's can perform edit, delete or show
        print("""Hint:
        To View all Users Data: enter "show users"
        To View Your Own Data: enter "show"
        To Edit: enter "edit"
        To Delete User: enter "delete"
        """)
        mode = input(
            "Which action you want to perform (Retrieve/Edit/Delete )? ")
        if mode == "edit":
            admin_data = self.um_obj.admin_data_show(self.aid)
            edit_data = self.uv_obj.user_edit(admin_data)
            update_admin = self.um_obj.update_admin(edit_data, self.aid)
            print(update_admin)
        elif mode == "delete":
            delete_name = self.uv_obj.delete_user_data()
            delete = self.um_obj.delete_user_by_admin(delete_name)
            print(delete)
        elif mode == "show users":
            user_rows = self.um_obj.all_user_data_for_admin()
            self.uv_obj.admin_output_of_user(user_rows)
        elif mode == "show":
            admin_row = self.um_obj.admin_data_show(self.aid)
            self.uv_obj.admin_output(admin_row)
        else:
            print("Wrong Instruction!")

    def user_control(self):
        print("""Hint: To Sign Up: enter "sign up" 
        To Login: enter "login"
        """)
        mode = input("Which action you want to perform (Sign Up/Login)? ")
        if mode == "sign up":
            user_input = self.uv_obj.user_input()
            add_db = self.um_obj.add_to_user_db(user_input)
            print(add_db)
        elif mode == "login":
            self.user_validate_control()
        else:
            print(
                "Enter sign up to Sign Up for  new user and enter login to LogIn for exist user."
            )
Exemple #16
0
class UserInterface(QWidget):
    def __init__(self,HiSpidier):
        super().__init__()
        self.HiSpider = HiSpidier
        self.initUI()
        self.show()

    def initUI(self):
        self.setGeometry(0, 0, 1280, 720)
        self.setWindowTitle('HiSpider')
        # 水平主布局
        self.MainBox = QHBoxLayout()
        self.setLayout(self.MainBox)
        self.Left()
        self.Right()

    def Left(self):
        # 左侧纵向布局LeftBox
        self.LeftWidget = QWidget()
        self.LeftWidget.setFixedWidth(300)
        self.LeftWidget.setGeometry(0, 0, 400, 720)

        self.LeftBox = QVBoxLayout()
        self.LeftWidget.setLayout(self.LeftBox)

        self.MainBox.addWidget(self.LeftWidget)

        ## URL数据框
        self.URLLabel = QLabel('URL:', self)
        self.URLInput = QLineEdit('http://www.people.com.cn/', self)
        self.URLButton = QPushButton('Open', self)
        self.URLButton.clicked.connect(self.SubmitRequest)          # 链接到控制器函数发送请求

        self.URLBox = QHBoxLayout()
        self.URLBox.addWidget(self.URLLabel)
        self.URLBox.addWidget(self.URLInput)
        self.URLBox.addWidget(self.URLButton)

        self.LeftBox.addLayout(self.URLBox)

        # 输入ModelName
        self.ModelNameLabel = QLabel('模型名:', self)
        self.ModelNameInput = QLineEdit('ModelName', self)

        self.ModelNameBox = QHBoxLayout()
        self.ModelNameBox.addWidget(self.ModelNameLabel)
        self.ModelNameBox.addWidget(self.ModelNameInput)

        self.LeftBox.addLayout(self.ModelNameBox)

        # 导出文件
        self.ExportLabel = QLabel('导出文件名:', self)
        self.ExportInput = QLineEdit('content', self)
        self.exportBurrom = QPushButton("导出")
        self.exportBurrom.clicked.connect(self.Export)
        # 保存格式
        self.currentFormat = ".json"
        self.SaveFormat = QToolButton(self)
        #self.SaveFormat.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
        #self.SaveFormat.setArrowType(Qt.DownArrow)             # 设置箭头方向
        self.SaveFormat.setText(self.currentFormat)                         # 设置图标和文字。
        self.SaveFormat.setAutoRaise(True)                      # 此属性保持是否启用自动升起
        self.SaveFormat.setPopupMode(QToolButton.InstantPopup)  #按下之后响应模式
        menu = QMenu(self)
        self.txtAct = QAction('.txt', self)
        self.jsonAct = QAction('.json', self)
        self.mysqlAct = QAction('.csv', self)
        menu.addAction(self.txtAct)
        menu.addAction(self.jsonAct)
        menu.addAction(self.mysqlAct)
        self.SaveFormat.setMenu(menu)
        self.txtAct.triggered.connect(self.SetFormat)
        self.jsonAct.triggered.connect(self.SetFormat)
        self.mysqlAct.triggered.connect(self.SetFormat)

        self.SaveFormatBox = QHBoxLayout()
        self.SaveFormatBox.addWidget(self.ExportLabel)
        self.SaveFormatBox.addWidget(self.ExportInput)
        self.SaveFormatBox.addWidget(self.SaveFormat)
        self.SaveFormatBox.addWidget(self.exportBurrom)

        self.LeftBox.addLayout(self.SaveFormatBox)        

        # Module缓存列表
        self.pListView = ListView(self.ShowModule) 
        self.pListView.setViewMode(QListView.ListMode)

        self.LeftBox.addWidget(self.pListView)


    def Right(self):
        # 右侧纵向布局RightBox
        self.RightBox = QVBoxLayout()
        self.MainBox.addLayout(self.RightBox)

        # tab内容标签
        self.tabWidget = QTabWidget()
        self.RightBox.addWidget(self.tabWidget)

        # 第一页
        self.HtmlTab = QWidget()
        self.Content1Box = QVBoxLayout()
        self.HtmlTab.setLayout(self.Content1Box)
        self.tabWidget.addTab(self.HtmlTab, "  HTML  ")
        # HTML显示窗口
        self.Content1 = QTextEdit(self)
        self.Content1Box.addWidget(self.Content1)



        # 第二页
        self.DiclistTab = QWidget()
        self.DiclistVBox = QVBoxLayout()
        self.DiclistTab.setLayout(self.DiclistVBox)
        self.tabWidget.addTab(self.DiclistTab, "  Diclist  ")
        self.widgetlist_dic = []    #diclist显示控件列表

        # 滚动条
        self.ScroWidget = QWidget()
        self.ScroWidgetVBox = QVBoxLayout()
        self.ScroWidget.setLayout(self.ScroWidgetVBox)

        self.DicScrollArea = QScrollArea()
        self.DicScrollArea.setWidget(self.ScroWidget)

        self.DiclistVBox.addWidget(self.DicScrollArea)
        self.DicScrollArea.setAutoFillBackground(True)
        self.DicScrollArea.setWidgetResizable(True)



        # 底部固定显示框
        self.ButtomWidget = QWidget()
        self.ButtomWidget.setFixedHeight(200)
        self.RightBox.addWidget(self.ButtomWidget)

        self.ButtomGLayout = QGridLayout()
        self.ButtomWidget.setLayout(self.ButtomGLayout)

        names = ["name"*25]

        for i in range(1,5):
            for j in range(1,5):
                if(i==1 and j==1):
                    exportBurrom = QPushButton("export")
                    exportBurrom.clicked.connect(self.Export)
                    self.ButtomGLayout.addWidget(exportBurrom,i,j,1,1)

        #self.ButtomGLayout.setSpacing(10)
        # 创建19个按钮

        #self.MainBox.addWidget(self.tabWidget)

        # 跑马灯
        #self.probar = QProgressBar(self)
        #self.probar.setOrientation(Qt.Horizontal)
        #self.probar.setFormat("%v")
        # %p - 被完成的百分比取代
        # %v - 被当前值替换


        #self.RightBox.addLayout(self.Content1Box)
        #self.RightBox.addWidget(self.probar)
        # MainBox


        #self.grid = QGridLayout()
        #self.grid.addWidget(self.LeftBox,0,0,1,1)
        #self.grid.addWidget(self.RightBox,0,1,1,1)


        #self.setLayout(self.grid)

        
    def SubmitRequest(self):
        # 提交URL获取HTML
        url = self.URLInput.text()
        modulename = self.ModelNameInput.text()
        self.HiSpider.SendRequest(url,modulename)

    def SaveDiclistEdit(self):
        # 更新UI界面中的设置到模型配置文件

        diclist = self.CurrentModule.Get("diclist")
        for w in self.widgetlist_dic:
            index = w.index
            isselect = w.GetIsSelect()
            title = w.GetTitle()

            diclist[index]["title"] = title
            diclist[index]["select"] = isselect
        self.CurrentModule.Conf_update()

    def Export(self):
        # 导出

        self.SaveDiclistEdit()
        filename = self.ExportInput.text() + self.currentFormat
        self.CurrentModule.OutPut(filename)

    def AddModelHistory(self,SimpleModel):
        #  list增加模型历史
        self.pListView.addItem(SimpleModel)

    def ShowModule(self,tModel):
        self.CurrentModule = tModel
        if(isinstance(tModel, Model)==False):
            self.CurrentModule = Model(tModel)
        else:
            self.CurrentModule = tModel
        # 显示HTML和Diclist

        html = self.CurrentModule.Get("html")
        
        self.Content1.setPlainText(html)# setPlainText纯文本,settext富文本
        # 清空显示diclist的控件
        if(len(self.widgetlist_dic)!=0):
            for i,w in enumerate(self.widgetlist_dic):
                w.deleteLater()
                del self.widgetlist_dic[i]

        diclist = self.CurrentModule.Get("diclist")
        print(diclist)
        if(diclist!=[]):
            for i,dic in enumerate(diclist):
                dw = DiclistWidget(dic,i)
                self.widgetlist_dic.append(dw)
                self.ScroWidgetVBox.addWidget(dw)


    def SetFormat(self):
        # 设置显示
        if self.sender() == self.txtAct:
            self.SaveFormat.setText(".txt")
            self.currentFormat = ".txt"
        elif self.sender() == self.jsonAct:
            self.SaveFormat.setText(".json")
            self.currentFormat = ".json"
        elif self.sender() == self.mysqlAct:
            self.SaveFormat.setText(".csv")
            self.currentFormat = ".csv"
# augment the dataset to increase the number of training samples
aug = ImageDataGenerator(rotation_range=10,
                         zoom_range=0.15,
                         width_shift_range=0.1,
                         height_shift_range=0.1,
                         shear_range=0.15,
                         horizontal_flip=False,
                         vertical_flip=False,
                         fill_mode="nearest")

# Initializing the optimizer and the model
print("compiling model")
opt = Adam(lr=lr, decay=lr / (epochs * 0.5))
model = Model.build(width=image_width,
                    height=image_height,
                    depth=3,
                    classes=numLabels)
model.compile(loss="categorical_crossentropy",
              optimizer=opt,
              metrics=["accuracy"])

# compile and train
print("training network")
H = model.fit_generator(aug.flow(X_train, y_train, batch_size=batch_size),
                        validation_data=(X_test, y_test),
                        steps_per_epoch=X_train.shape[0] // batch_size,
                        epochs=epochs,
                        class_weight=classWeight,
                        verbose=1)

# evaluate the network
Exemple #18
0
class Controller:
    """
    *********************************
    *  A controller for a store DB  *
    *********************************
    """
    def __init__(self):
        self.model = Model()
        self.view = View()

    def start(self):
        self.view.start()
        self.main_menu()


    """
    *********************************
    *       General Controller      *
    *********************************
    """
    def main_menu(self):
        o = '0'
        while 0 != '3':
            self.view.main_menu()
            self.view.option('3')
            o = input()
            if o == '1':
                self.menu_usuario()
            elif o == '2':
                self.login()
            elif o == '3':
                self.view.end()
            else:
                self.view.not_valid_option()
        return

    def update_lists(self, fs, vs):
        fields = []
        vals = []
        for f,v in zip(fs,vs):
            if v != '':
                fields.append(f+' = %s')
                vals.append(v)
        return fields,vals


    def menu_usuario(self):
        o = '0'
        while o != '4':
            self.view.main_menu_usuario()
            self.view.option('4')
            o = input()
            if o == '1':
                self.usuario_peliculas()
            elif o == '2':
                self.usuario_funciones()
            elif o == '3':
                self.usuario_boletos()
            elif o == '4':
                self.main_menu()
                return
            else:
                self.view.not_valid_option()
        return

    def administrador_menu(self):
        o = '0'
        while o != '5':
            self.view.main_menu_admin()
            self.view.option('5')
            o = input()
            if o == '1':
                self.administrador_peliculas()
            elif o == '2':
                self.administrador_salas()
            elif o == '3':
                self.administrador_funciones()
            elif o == '4':
                self.administrador_boletos()
            elif o == '5':
                self.administrador_admins()
            elif o == '6':
                self.main_menu()
                return
            else:
                self.view.not_valid_option()
        return


    """
    *********************************
    *   Controllers for peliculas   *
    *********************************
    """

    def administrador_peliculas(self):
        o = '0'
        while o != '7':
            self.view.peliculas_menu_admin()
            self.view.option('7')
            o = input()
            if o == '1':
                self.agregar_pelicula()
            elif o == '2':
                self.read_a_pelicula()
            elif o == '3':
                self.read_all_peliculas()
            elif o == '4':
                self.read_peliculas_categoria()
            elif o == '5':
                self.update_pelicula()
            elif o == '6':
                self.delete_pelicula()
            elif o == '7':
                self.administrador_menu()
                return
            else:
                self.view.not_valid_option()
        return

    def usuario_peliculas(self):
        o = '0'
        while o != '3':
            self.view.pelicuas_menu_usuario()
            self.view.option('3')
            o = input()
            if o == '1':
                self.read_all_peliculas()
            elif o == '2':
                self.read_peliculas_categoria()
            elif o == '3':
                self.menu_usuario()
                return
            else:
                self.view.not_valid_option()
        return

    def ask_pelicula(self):
        self.view.ask('Nombre: ')
        nombre = input()
        self.view.ask('Sinopsis: ')
        sinopsis = input()
        self.view.ask('Categoria: ')
        categoria = input()
        self.view.ask('Duracion: ')
        duracion = input()
      
        return [nombre, sinopsis, categoria, duracion]

    def agregar_pelicula(self):
        nombre, sinopsis, categoria, duracion = self.ask_pelicula()
        out = self.model.agregar_pelicula(nombre, sinopsis, categoria, duracion)
        if out == True:
            self.view.ok(nombre,'agrego')
        else:
            self.view.error('NO SE PUDO AGREGAR LA PELICULA. REVISA')
        return

    def read_a_pelicula(self):
        self.view.ask('ID pelicula: ')
        id_pelicula = input()
        pelicula = self.model.read_a_pelicula(id_pelicula)
        if type(pelicula) == tuple:
            self.view.show_pelicula_header(' Datos de la pelicula '+id_pelicula+' ')
            self.view.show_a_pelicula(pelicula)
            self.view.show_pelicula_midder()
            self.view.show_pelicula_footer()
        else:
            if pelicula == None:
                self.view.error('LA PELICULA NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER LA PELICULA. REVISA')
        return

    def read_all_peliculas(self):
        peliculas = self.model.read_all_pelicula()
        if type(peliculas) == list:
            self.view.show_pelicula_header(' Todas las peliculas ') 
            for pelicula in peliculas:
                self.view.show_a_pelicula(pelicula)
                self.view.show_pelicula_midder()
            self.view.show_pelicula_footer()
        else:
            self.view.error('PROBLEMA AL LEER LAS PELICULAS. REVISA')
        return

    def read_peliculas_categoria(self):
        self.view.ask('Categoria: ')
        categoria = input()
        peliculas = self.model.read_pelicula_categoria(categoria)
        if type(peliculas) == list:
            self.view.show_pelicula_header(' Peliculas categoria '+categoria+' ')
            for pelicula in peliculas:
                self.view.show_a_pelicula(pelicula)
                self.view.show_pelicula_midder()
            self.view.show_pelicula_footer
        else:
            self.view.error('PROBLEMA AL LEER LAS PELICULAS. REVISA')
        return


    def update_pelicula(self):
        self.view.ask('ID de pelicula a modificar: ')
        id_pelicula = input()
        pelicula = self.model.read_a_pelicula(id_pelicula)    
        if type(pelicula) == tuple:
            self.view.show_pelicula_header(' Datos de la pelicula '+id_pelicula+' ')
            self.view.show_a_pelicula(pelicula)
            self.view.show_pelicula_midder()
            self.view.show_pelicula_footer()
        else:
            if pelicula == None:
                self.view.error('LA PELICULA NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER LA PELICULA')
            return
        self.view.msg('Ingresa los valores a modificar (vacio para dejarlo igual): ')
        whole_vals = self.ask_pelicula()
        fields, vals = self.update_lists(['Nombre', 'Sinopsis', 'Categoria', 'Duracion'], whole_vals)
        vals.append(id_pelicula)
        vals = tuple(vals)
        out = self.model.update_pelicula(fields,vals)
        if out == True:
            self.view.ok(id_pelicula, 'actualizo')
        else:
            self.view.error('NO SE PUDO ACTUALIZAR LA PELICULA. REVISA')
        return  


    def delete_pelicula(self):
        self.view.ask('Id de la pelicula a borrar: ')
        id_pelicula = input()
        count = self.model.delete_pelicula(id_pelicula)
        if count != 0:
            self.view.ok(id_pelicula, 'borro')
        else:
            if count == 0:
                self.view.error('LA PELICULA NO EXISTE')
            else:
                self.view.error('PROBLEMA AL BORRAR LA PELICULA. REVISA.')
        return
    
    """
    *********************************
    *   Controllers for salas       *
    *********************************
    """

    def administrador_salas(self):
        o = '0'
        while o != '8':
            self.view.sala_menu()
            self.view.option('8')
            o = input()
            if o == '1':
                self.agregar_sala()
            elif o == '2':
                self.read_a_sala()
            elif o == '3':
                self.read_all_salas()
            elif o == '4':
                self.update_sala()
            elif o == '5':
                self.agregar_asientos_sala()
            elif o == '6':
                self.eliminar_asientos_sala()
            elif o == '7':
                self.delete_sala()
            elif o == '8':
                self.administrador_menu()
                return
            else:
                self.view.not_valid_option()
        return

    def ask_sala(self):
        self.view.ask('Nombre: ')
        nombre = input()
        return [nombre]

    def agregar_sala(self):
        nombre = self.ask_sala()
        out = self.model.agregar_sala(nombre)
        if out == True:
            self.view.ok(nombre,'agrego')
        else:
            self.view.error('NO SE PUDO AGREGAR LA SALA. REVISA')
        return

    def read_a_sala(self):
        self.view.ask('ID sala: ')
        id_sala = input()
        sala = self.model.read_a_sala(id_sala)
        if type(sala) == tuple:
            self.view.show_sala_header(' Datos de la sala '+id_sala+' ')
            self.view.show_a_sala(sala)
            self.read_all_asientos(id_sala)
            self.view.show_sala_midder()
            self.view.show_sala_footer()
        else:
            if sala == None:
                self.view.error('LA SALA NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER LA SALA. REVISA')
        return

    def read_all_salas(self):
        salas = self.model.read_all_salas()
        if type(salas) == list:
            self.view.show_sala_header(' Todas las salas ') 
            for sala in salas:
                self.view.show_sala_header('Sala '+str(sala[0])) 
                self.view.show_a_sala(sala)
                self.read_all_asientos(sala[0])
                self.view.show_sala_midder()
            self.view.show_pelicula_footer()
        else:
            self.view.error('PROBLEMA AL LEER LAS PELICULAS. REVISA')
        return

    def read_all_asientos(self,id_sala):
        asientos = self.model.read_asientos_sala(id_sala)
        if type(asientos) == list:
            if len(asientos) == 0:
                print('Aun no se egregan asientos')
                self.view.show_asiento_footer()
            else:
                self.view.show_asiento_header(' Asientos sala '+str(id_sala))
                for asiento in asientos:
                    self.view.show_a_asiento(asiento)
                self.view.show_asiento_footer()
        else:
            self.view.error('PROBLEMA AL LEER LOS ASIENTOS')
        return

    def read_asientos(self,asientos):
        if type(asientos) == list:
            self.view.show_asiento_header('Asientos Disponibles')
            for asiento in asientos:
                self.view.show_a_asiento(asiento)
            self.view.show_asiento_footer()
        else:
            self.view.error('PROBLEMA AL LEER LOS ASIENTOS')
        return

    def agregar_asientos_sala(self):
        self.read_all_salas()
        self.view.ask('ID de la sala: ')
        id_sala = input()
        self.view.ask('Cuantos asientos desea agregar? ')
        no_asientos = input()
        for a in range (0,int(no_asientos)):
            self.view.ask('Nombre del asiento: ')
            nombre = input()
            out = self.model.agregar_asiento(id_sala, nombre)
            if out == True:
                self.view.ok(nombre,'agrego')
            else:
                self.view.error('NO SE PUDO AGREGAR EL ASIENTO. REVISA')
        return


    def ask_sala(self):
        self.view.ask('Nombre: ')
        nombre = input()
        return [nombre]

    def update_sala(self):
        self.view.ask('ID de la sala a modificar: ')
        id_sala = input()
        sala = self.model.read_a_sala(id_sala)    
        if type(sala) == tuple:
            self.view.show_sala_header(' Datos de la sala '+id_sala+' ')
            self.view.show_a_sala(sala)
            self.view.show_sala_midder()
            self.view.show_sala_footer()
        else:
            if sala == None:
                self.view.error('LA SALA NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER LA SALA')
            return
        self.view.msg('Ingresa los valores a modificar (vacio para dejarlo igual): ')
        whole_vals = self.ask_sala()
        fields, vals = self.update_lists(['nombre_sala'], whole_vals)
        vals.append(id_sala)
        vals = tuple(vals)
        out = self.model.update_sala(fields,vals)
        if out == True:
            self.view.ok(id_sala, 'actualizo')
        else:
            self.view.error('NO SE PUDO ACTUALIZAR LA SALA. REVISA')
        return  

    def eliminar_asientos_sala(self):
        self.view.ask('Id de la sala: ')
        id_sala = input()
        self.view.ask('ID del asiento: ')
        id_asiento = input()
        count = self.model.delete_asientos(id_sala, id_asiento)
        if count != 0:
            self.view.ok(id_asiento, 'borro')
        else:
            if count == 0:
                self.view.error('El ASIENTO NO EXISTE')
            else:
                self.view.error('PROBLEMA AL BORRAR EL ASIENTO')
        return

    def delete_sala(self):
        self.view.ask('ID de la sala: ')
        id_sala = input()
        count = self.model.delete_sala(id_sala)
        if count != 0:
            self.view.ok(id_sala, 'borro')
        else:
            if count == 0:
                self.view.error('LA SALA NO EXISTE')
            else:
                self.view.error('PROBLEMA AL BORRAR LA SALA')
        return

    """
    *********************************
    *   Controllers for Funciones   *
    *********************************
    """
    def usuario_funciones(self):
        o = '0'
        while o != '3':
            self.view.menu_funciones_usuario()
            self.view.option('3')
            o = input()
            if o == '1':
                self.read_all_funciones()
            elif o == '2':
                self.read_funciones_pelicula()
            elif o == '3':
                self.menu_usuario()
                return
            else:
                self.view.not_valid_option()
        return

    def administrador_funciones(self):
        o = '0'
        while o != '7':
            self.view.funciones_menu()
            self.view.option('7')
            o = input()
            if o == '1':
                self.agregar_funciones()
            elif o == '2':
                self.read_a_funcion()
            elif o == '3':
                self.read_all_funciones()
            elif o == '4':
                self.read_funciones_pelicula()
            elif o == '5':
                self.update_funcion()
            elif o == '6':
                self.delete_funcion()
            elif o == '7':
                self.administrador_menu()
                return
            else:
                self.view.not_valid_option()
        return

    def ask_funcion(self):
        self.view.ask('ID Pelicula: ')
        id_pelicula = input()
        self.view.ask('ID_sala: ')
        id_sala = input()
        self.view.ask('Fecha: ')
        fecha = input()
        self.view.ask('Hora: ')
        hora = input()
        self.view.ask('Precio: ')
        precio = input()
        self.view.ask('Idioma: ')
        idioma = input()
      
        return [id_pelicula, id_sala, fecha, hora, precio, idioma]


    def agregar_funciones(self):
        id_pelicula, id_sala, fecha, hora, precio, idioma = self.ask_funcion()
        out = self.model.agregar_funcion(id_pelicula, id_sala, fecha, hora, precio, idioma)
        if out == True:
            self.view.ok(fecha,'Funcion agregada')
        else:
            self.view.error('NO SE PUDO AGREGAR LA FUNCION. REVISA')
        return

    def read_a_funcion(self):
        self.view.ask('ID funcion: ')
        id_funcion = input()
        funcion = self.model.read_a_funcion(id_funcion)
        if type(funcion) == tuple:
            self.view.show_funcion_header(' Datos de la funcion '+id_funcion+' ')
            self.view.show_a_funcion(funcion)
            self.view.show_funcion_midder()
            self.view.show_funcion_footer()
        else:
            if funcion == None:
                self.view.error('LA FUNCION NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER LA FUNCION')
        return
    
    def read_funcion(self,id_funcion):
        funcion = self.model.read_a_funcion(id_funcion)
        if type(funcion) == tuple:
            self.view.show_funcion_header(' Datos de la funcion '+id_funcion+' ')
            self.view.show_a_funcion(funcion)
            self.view.show_funcion_midder()
            self.view.show_funcion_footer()
        else:
            if funcion == None:
                self.view.error('LA FUNCION NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER LA FUNCION')
        return
    
    def read_all_funciones(self):
        funciones = self.model.read_all_funciones()
        if type(funciones) == list:
            self.view.show_funcion_header(' Todas las funciones ')
            for funcion in funciones:
                self.view.show_a_funcion(funcion)
                self.view.show_funcion_midder()
            self.view.show_pelicula_footer()
        else:
            self.view.error('PROBLEMA AL LEER LAS FUNCIONES. REVISA')
        return

    def read_funciones_pelicula(self):
        self.view.ask('Nombre Pelicula: ')
        n_pelicula = input()
        funciones = self.model.read_funcion_pelicula(n_pelicula)
        if type(funciones) == list:
            self.view.show_funcion_header(' Funciones para pelicula '+n_pelicula+' ')
            for funcion in funciones:
                self.view.show_a_funcion(funcion)
                self.view.show_funcion_midder()
            self.view.show_pelicula_footer()
        else:
            self.view.error('PROBLEMA AL LEER LAS FUNCIONES. REVISA')
        return

    def update_funcion(self):
        self.view.ask('ID de funcion a modificar: ')
        id_funcion = input()
        funcion = self.model.read_a_funcion(id_funcion)    
        if type(funcion) == tuple:
            self.view.show_funcion_header(' Datos de la funcion '+id_funcion+' ')
            self.view.show_a_funcion(funcion)
            self.view.show_funcion_midder()
            self.view.show_funcion_footer()
        else:
            if funcion == None:
                self.view.error('LA FUNCION NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER LA FUNCION')
            return
        self.view.msg('Ingresa los valores a modificar (vacio para dejarlo igual): ')
        whole_vals = self.ask_funcion()
        fields, vals = self.update_lists(['id_pelicula', 'id_sala', 'fecha', 'hora', 'precio', 'idioma'], whole_vals)
        vals.append(id_funcion)
        vals = tuple(vals)
        out = self.model.update_funcion(fields,vals)
        if out == True:
            self.view.ok(id_funcion, 'actualizo')
        else:
            self.view.error('NO SE PUDO ACTUALIZAR LA FUNCION. REVISA')
        return

    def delete_funcion(self):
        self.view.ask('ID de la FUNCION: ')
        id_funcion = input()
        count = self.model.delete_funcion(id_funcion)
        if count != 0:
            self.view.ok(id_funcion, 'borro')
        else:
            if count == 0:
                self.view.error('LA FUNCION NO EXISTE')
            else:
                self.view.error('PROBLEMA AL BORRAR LA FUNCION')
        return


    """
    *********************************
    *   Controllers for BOLETOS     *
    *********************************
    """
    def usuario_boletos(self):
        o = '0'
        while o != '2':
            self.view.boletos_menu_usuario()
            self.view.option('2')
            o = input()
            if o == '1':
                self.agregar_boleto()
            elif o == '2':
                self.menu_usuario()
                return
            else:
                self.view.not_valid_option()
        return

    def administrador_boletos(self):
        o = '0'
        while o != '6':
            self.view.boleto_menu()
            self.view.option('6')
            o = input()
            if o == '1':
                self.agregar_boleto()
            elif o == '2':
                self.read_a_boleto()
            elif o == '3':
                self.read_all_boletos()
            elif o == '4':
                self.read_boletos_funcion()
            elif o == '5':
                self.delete_funcion()
            elif o == '6':
                self.administrador_menu()
                return
            else:
                self.view.not_valid_option()
        return

    def ask_boleto(self):
        self.view.ask('ID Funcion: ')
        id_funcion = input()
        self.view.ask('ID_asiento: ')
        id_asiento = input()
      
        return [id_funcion, id_asiento]


    def agregar_boleto(self):
        self.read_all_funciones()
        self.view.ask('ID_FUNCION: ')
        id_funcion = input()
        funcion=self.model.read_a_funcion(id_funcion)
        asientos = self.model.read_asientos_sala(funcion[2])
        ocupados = self.model.asientos_funcion(id_funcion)
        desocupados = [a for a in asientos if not a in ocupados]
        self.read_asientos(desocupados)
        self.view.ask('ID_ASIENTO: ')
        id_asiento = input()
        des = []
        for i in desocupados:
            des.append(str(i[0]))
        if id_asiento in des:
            out = self.model.agregar_boleto(id_funcion, id_asiento)
            if out == True:
                self.view.ok(id_asiento,'agregado')
            else:
                self.view.error('NO SE PUDO AGREGAR EL BOLETO')
        else:
            self.view.error('ERROR AL SELECCIONAR ASIENTO')
        return


    def read_a_boleto(self):
        self.view.ask('ID Boleto: ')
        id_boleto = input()
        boleto = self.model.read_a_boleto(id_boleto)
        if type(boleto) == tuple:
            self.view.show_boleto_footer()
            self.view.show_boleto_header(' Datos de la boleto '+id_boleto+' ')
            self.view.show_boleto_footer()
            self.view.show_boleto(boleto)
            self.view.show_boleto_footer()
        else:
            if boleto == None:
                self.view.error('EL BOLETO NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER EL BOLETO')
        return
    
    def read_all_boletos(self):
        boletos = self.model.read_all_boletos()
        if type(boletos) == list:
            self.view.show_funcion_header(' Todos los boletos ')
            for boleto in boletos:
                self.view.show_boleto(boleto)
                self.view.show_boleto_midder()
            self.view.show_pelicula_footer()
        else:
            self.view.error('PROBLEMA AL LEER LAS FUNCIONES. REVISA')
        return

    def read_boletos_funcion(self):
        self.read_all_funciones()
        self.view.ask('ID FUNCION: ')
        id_funcion = input()
        boletos = self.model.read_boletos_funcion(id_funcion)
        if type(boletos) == list:
            self.view.show_funcion_header(' Boletos de la funcion '+id_funcion+' ')
            for boleto in boletos:
                self.view.show_boleto(boleto)
                self.view.show_boleto_midder()
            self.view.show_pelicula_footer()
        else:
            self.view.error('PROBLEMA AL LEER LAS BOLETOS')
        return

    def delete_boleto(self):
        self.view.ask('ID del BOLETO: ')
        id_boleto = input()
        count = self.model.delete_boleto(id_boleto)
        if count != 0:
            self.view.ok(id_boleto, 'se borro')
        else:
            if count == 0:
                self.view.error('EL BOLETO NO EXISE')
            else:
                self.view.error('PROBLEMA AL BORRAR EL BOLETO')
        return


    """
    *********************************
    *   Controllers for ADMINS      *
    *********************************
    """
    def administrador_admins(self):
        o = '0'
        while o != '6':
            self.view.admin_menu()
            self.view.option('6')
            o = input()
            if o == '1':
                self.agregar_administrador()
            elif o == '2':
                self.read_a_administrador()
            elif o == '3':
                self.read_all_administradores()
            elif o == '4':
                self.update_administrador()
            elif o == '5':
                self.delete_administrador()
            elif o == '6':
                self.administrador_menu()
                return
            else:
                self.view.not_valid_option()
        return

    def ask_admin(self):
        self.view.ask('Nombre: ')
        nombre = input()
        self.view.ask('Apellido_P: ')
        apellido_p = input()
        self.view.ask('Apellido_M: ')
        apellido_m = input()
        self.view.ask('Usuario: ')
        usuario = input()
        self.view.ask('Contraseña: ')
        contraseña = input()
      
        return [nombre, apellido_p, apellido_m, usuario, contraseña]
    
    def agregar_administrador(self):
        nombre, apellido_p, apellido_m, usuario, contraseña = self.ask_admin()
        out = self.model.agregar_administrador(nombre, apellido_p, apellido_m, usuario, contraseña)
        if out == True:
            self.view.ok(nombre,'agrego')
        else:
            self.view.error('NO SE PUDO AGREGAR EL ADMINISTRADOR. REVISA')
        return

    def read_a_administrador(self):
        self.view.ask('ID ADMIN: ')
        id_admin = input()
        admin = self.model.read_administrador(id_admin)
        if type(admin) == tuple:
            self.view.show_admin_header(' Datos del Admin '+id_admin+' ')
            self.view.show_a_admin(admin)
            self.view.show_admin_midder()
            self.view.show_admin_footer()
        else:
            if admin == None:
                self.view.error('EL ADMINISTRADOR NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER EL ADMIN. REVISA')
        return

    def read_all_administradores(self):
        admins = self.model.read_all_administradores()
        if type(admins) == list:
            self.view.show_admin_header(' Todos los administradores ') 
            for admin in admins:
                self.view.show_a_admin(admin)
                self.view.show_admin_midder()
            self.view.show_admin_footer()
        else:
            self.view.error('PROBLEMA AL LEER LOS ADMINISTRADORES. REVISA')
        return

    def update_administrador(self):
        self.view.ask('ID del administrador a modificar: ')
        id_admin = input()
        admin = self.model.read_administrador(id_admin)    
        if type(admin) == tuple:
            self.view.show_admin_header(' Datos del admin '+id_admin+' ')
            self.view.show_a_admin(admin)
            self.view.show_admin_midder()
            self.view.show_admin_footer()
        else:
            if admin == None:
                self.view.error('EL ADMINISTRADOR NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER EL ADMIN')
            return
        self.view.msg('Ingresa los valores a modificar (vacio para dejarlo igual): ')
        whole_vals = self.ask_admin()
        fields, vals = self.update_lists(['nombre', 'apellido_p', 'apellido_m', 'usuario', 'contraseñna'], whole_vals)
        vals.append(id_admin)
        vals = tuple(vals)
        out = self.model.update_administrador(fields,vals)
        if out == True:
            self.view.ok(id_admin, 'actualizo')
        else:
            self.view.error('NO SE PUDO ACTUALIZAR EL ADMINISTRADOR. REVISA')
        return

    def delete_administrador(self):
        self.view.ask('ID del ADMIN: ')
        id_admin = input()
        count = self.model.delete_admin(id_admin)
        if count != 0:
            self.view.ok(id_admin, 'se borro')
        else:
            if count == 0:
                self.view.error('EL ADMINISTRADOR NO EXISE')
            else:
                self.view.error('PROBLEMA AL BORRAR')
        return

    def ask_login(self):
        self.view.ask('Usuario: ')
        usuario = input()
        self.view.ask('Contraseña: ')
        contraseña = input()
      
        return [usuario, contraseña]

    def login(self):
        self.view.login()
        usuario, contraseña = self.ask_login()
        login = self.model.admin_login(usuario,contraseña)
        if type(login) == tuple:
            self.view.show_admin_header(' BIENVENIDO '+login[0]+' ')
            self.view.show_admin_footer()
            self.administrador_menu()
        else:
            if login == None:
                self.view.error('CONTRASEÑA O USUARIO INCORRECTO')
            else:
                self.view.error('PROBLEMA AL INGRESAR')
        return
Exemple #19
0
 def showInput():
     read, write = Model().setTypeSerial()
     book = ContactBook(read())
     Control().showInput(book)
Exemple #20
0
import numpy as np
from time import time
import random, string

from Model.model import Model

m = Model(print_obj={'end_conf': True})

x = []
for i in range(4):
    x.append(m.add_var("real+", name=i))
x = np.array(x)

m.maximize(sum(np.array([4, 1, 5, 3]) * x))

m.add_constraint(x[0] - x[1] - x[2] + 3 * x[3] <= 1)
m.add_constraint(5 * x[0] + x[1] + 3 * x[2] + 8 * x[3] <= 55)
m.add_constraint(-x[0] + 2 * x[1] + 3 * x[2] - 5 * x[3] <= 3)

print("all added")

t0 = time()
m.solve()
print("Solved in %f" % (time() - t0))

m.print_solution(slack=False)
print("Steps: ", m.steps)
Exemple #21
0
#/usr/bin/python
#-*- coding: utf-8 -*-

#system modules
import sys
#add root path into the sys.path
# sys.path.append('./')

#custom modules
from Model.model import Model
if __name__ == "__main__":
    if len(sys.argv)>1:
        cmd=sys.argv[1]
        if cmd=='score':
            from evaluate import score
            score.evaluator()
            exit(0)
        elif cmd=='result':
            print 'result'
            exit(0)
        elif cmd=='run':
            pass
        else:
            print "Usage: python start.py run|score|result"
            exit(0)

    #run the model
    betamodel=Model()
    betamodel.run()
Exemple #22
0
 def deleteInput():
     read, write = Model().setTypeSerial()
     book = ContactBook(read())
     Control().deleteInput(book)
     write(book)
Exemple #23
0
from Model.model import Model
import numpy as np
from time import time
import sys

m = Model(print_obj={'start_conf': True})

a = m.add_var("real+", name="a")
b = m.add_var("real+", name="b")

m.maximize(3 * a - b)

m.add_constraint(-3 * a + 3 * b <= 6)
m.add_constraint(-8 * a + 4 * b <= 4)

t0 = time()
m.solve()
print("Solved in %f" % (time() - t0))

m.print_solution()
from Model.model import Model
import torch.optim as optim
from torch.optim import lr_scheduler
import torch.nn as nn
from Data.data_preprocessing import Dataset
from Model.data_loader import DL

if __name__ == "__main__":
    csv_path = ''
    mp3_path = ''
    new_images_path = ''
    epochs = 10

    preprocess = Dataset(mp3_path, new_images_path, csv_path)
    preprocess.create_data()

    trainloader, testloader = DL(csv_path, new_images_path).create_dataloader()

    model_object = Model()
    model = model_object.get_model()

    criterion = nn.CrossEntropyLoss()
    optimizer_ft = optim.SGD(model.parameters(), lr=0.0001, momentum=0.9)
    exp_lr_scheduler = lr_scheduler.StepLR(optimizer_ft,
                                           step_size=2,
                                           gamma=0.1)

    trained_model = model_object.train_model(model, criterion, optimizer_ft,
                                             exp_lr_scheduler, epochs,
                                             trainloader)
Exemple #25
0
class HiSpider(FileController):
    def __init__(self, *args, **kwargs):
        self.__confdic = {
                "confFilePath":'./Config/MainConf.json',
                "HistoryDicList":[]

        }
        self.Conf_load(self.__confdic)
        self.CurrentModule = Model("ModelName")
        # 请求
        self.Request = Request()
        self.urlquest = uq()

        # 解析
        self.Analyze = Analyze()
        
        return super().__init__(*args, **kwargs)

    def viewinit(self):
        # 初始化界面
        app = QApplication(sys.argv)
        self.UI = UserInterface(self)

        for sm in self.GetOldSimpleModelList():
            self.UI.AddModelHistory(sm)

        sys.exit(app.exec_())


    def GetOldSimpleModelList(self):
        modellist = []
        smlist = self.Get("HistoryDicList")
        for dic in smlist:
            sm = SimpleModel(dic["ModelName"],dic["url"])
            modellist.append(sm)
        return modellist


    def GetConfDic(self):
        return self.__confdic

    def Get(self,key):
        return self.__confdic[key]    

    def Conf_update(self):
        self.Conf_write(self.__confdic)

    def AddModelHistory(self,modelname,url):
        dic = {}
        for h in self.__confdic["HistoryDicList"]:
            if(h["ModelName"]==modelname):
                return 
        dic["ModelName"] = modelname
        dic["url"] = url
        self.__confdic["HistoryDicList"].append(dic)
        self.Conf_update()
    #def DeleteModelHistory(self,index)

    def SendRequest(self,url,modelname):
        self.CurrentModule = Model(modelname)
        html = self.urlquest.GetHtml(url)
        htmlcode = self.urlquest.code
        self.CurrentModule.Prepare(url,html,htmlcode)

        diclist = self.GetAnalyzeDiclist(html)

        self.CurrentModule.Set("diclist",diclist)
        # 显示
        sm = SimpleModel(modelname,url)
        self.UI.AddModelHistory(sm)
        self.UI.ShowModule(self.CurrentModule)
        # 添加抓取历史记录(URL,模型名)
        self.AddModelHistory(modelname,url)

    def GetAnalyzeDiclist(self,html):
        self.Analyze.start(html)
        return self.Analyze.diclist
Exemple #26
0
 def __init__(self):
     self.model = Model()
     self.view = View()
Exemple #27
0
from Model.model import Model
import numpy as np
from time import time
import sys

m = Model(print_obj={'start_conf': True})

x1 = m.add_var("real+", name="a")
x2 = m.add_var("real+", name="b")
x3 = m.add_var("real+", name="c")

m.minimize(35 * x1 + 60 * x2 + 75 * x3)

# """
m.add_constraint(8 * x1 + 12 * x2 + 16 * x3 >= 120)
m.add_constraint(15 * x2 + 20 * x3 >= 60)
m.add_constraint(3 * x1 + 6 * x2 + 9 * x3 >= 48)
"""
m.add_constraint(8 * x1 + 12 * x2 + 16 * x3 + 12 * x4 <= 120)
m.add_constraint(15 * x2 + 20 * x3 + 30 * x4 <= 60)
m.add_constraint(3 * x1 + 6 * x2 + 9 * x3 + 15 * x4 <= 48)
"""

m.solve(consider_dual=0)
m.print_solution()
print(m.t.tableau)
m.add_new_variable([12, 30, 10], 15)

m.print_solution()
Exemple #28
0
        'att_shape': [200, 100],
        'net_input_dim': graph.num_nodes,
        'att_input_dim': graph.num_feas,
        'is_init': True,
        'pretrain_params_path': './Log/cora/pretrain_params.pkl'
    }

    trainer_config = {
        'net_shape': [200, 100],
        'att_shape': [200, 100],
        'net_input_dim': graph.num_nodes,
        'att_input_dim': graph.num_feas,
        'drop_prob': 0.2,
        'learning_rate': 1e-5,
        'batch_size': 100,
        'num_epochs': 500,
        'beta': 100,
        'alpha': 50,
        'gamma': 500,
        'model_path': './Log/cora/cora_model.pkl',
    }

    pretrainer = PreTrainer(pretrain_config)
    pretrainer.pretrain(graph.X, 'net')
    pretrainer.pretrain(graph.Z, 'att')

    model = Model(model_config)
    trainer = Trainer(model, trainer_config)
    trainer.train(graph)
    trainer.infer(graph)
Exemple #29
0
import numpy as np
from time import time
import random, string

from Model.model import Model

m = Model(print_obj={'start_conf': True, 'end_conf': True})


def get_keys(obj):
    keys = []
    for ing in obj:
        keys.append(ing)
    return keys


def get_by_key(obj, key, key_list=False):
    arr = []
    if key_list:
        for ing in key_list:
            arr.append(obj[ing][key])
    else:
        for ing in obj:
            arr.append(obj[ing][key])
    return np.array(arr)


ingredients = {
    "oat": {
        "kcal": 110,
        "protein": 4,
Exemple #30
0
from Model.model import Model
import numpy as np
from time import time

m = Model()

"""
A post office example:
Minimize the number of full time employees
Fulltime = 5 consecutive days + 2 free days


Weekday   | Employees needed
Monday    | 17
Tuesday   | 13
Wednesday | 15
Thursday  | 19
Friday    | 14
Saturday  | 16
Sunday    | 11

"""


mon = m.add_var("real+", name="Monday")
tue = m.add_var("real+", name="Tuesday")
wed = m.add_var("real+", name="Wednesday")
thu = m.add_var("real+", name="Thursday")
fri = m.add_var("real+", name="Friday")
sat = m.add_var("real+", name="Saturday")
sun = m.add_var("real+", name="Sunday")
    epoch_num = 300
    z_dim = 100

    save_path = os.getcwd() + '/Save_' + str(z_dim)
    if not os.path.exists(save_path):
        os.makedirs(save_path)

    # get_data
    print('-- get data--')

    mnist = input_data.read_data_sets("MNIST_data/", one_hot=False)
    input_dim = np.shape(mnist.train.images)[1]

    # make model
    print('-- make model --')
    model = Model(input_dim, z_dim)
    model.set_model()

    # save model setting
    with open(save_path + '/setting.json', 'w') as fp:
        setting = model.setting()
        json.dump(setting, fp)

    # training
    print('-- begin training --')
    data = mnist.train.images
    num_one_epoch = np.shape(mnist.train.images)[0] // batch_size

    record_rec = np.zeros(epoch_num)
    record_gen = np.zeros(epoch_num)
    record_disc = np.zeros(epoch_num)