Use este identificador para citar ou linkar para este item: http://repositorio.utfpr.edu.br/jspui/handle/1/39008
Registro completo de metadados
Campo DCValorIdioma
dc.creatorChierici, Gustavo Brunholi-
dc.date.accessioned2025-12-02T18:31:47Z-
dc.date.available2025-12-02T18:31:47Z-
dc.date.issued2025-07-11-
dc.identifier.citationCHIERICI, Gustavo Brunholi. Formalização e implementação de um mecanismo de interferência do paradigma orientado a notificações baseado em multiplicação de matrizes esparsas. 2025. Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Computação) - Universidade Tecnológica Federal do Paraná, Curitiba, 2025.pt_BR
dc.identifier.urihttp://repositorio.utfpr.edu.br/jspui/handle/1/39008-
dc.description.abstractRule-Based Systems (RBS) are computational systems that organize knowledge into fact-base elements and rules, in which changes in fact-base elements cause the approval/disapproval of different rules throughout the execution flow of a program. RBSs are typically implemented by traversing (computationally expensive) data structures to check whether fact-base elements have changed and to know which rules should be approved or disapproved based on these changes, causing temporal (i.e., repetition of the calculation of boolean expressions) and structural (i.e., repetition of code) redundancies. In this sense, the Notification Oriented Paradigm (NOP) proposes the division of the program into “intelligent” notifying entities, which notify their dependencies when their internal states change, eliminating searches with temporal and structural redundancies for rule inference. In short, when its internal state changes, an element of the fact base will notify only the rules that are relevant to it, that is, the rules that depend on it, to be approved/activated or disapproved/deactivated. The purpose of this work is to formalize, through algebra, the dependency between rules and the elements of the fact base of a NOP system as the multiplication of sparse matrices by dense vectors, or SpMV (Sparse MatrixVector Multiplication). From the formalization, a new NOP framework was developed in C++, called MBRIS 0.1 (Matrix-Based Rule Inference System), which implements a new notification-oriented inference mechanism, inspired by matrix multiplication to animate notifications. This is to the detriment of the usual way of implementing in which an entity has the address of the notifiable entities, the NOP, as in the NOP Frameworks that, at the time, allowed usual languages (e.g., C++, Java and C#) to work in a notification-oriented manner. In addition to the innovation in the notification method, aiming to take advantage of the graphics card hardware, specialized in performing operations with matrices in a highly parallelizable way, an OpenCL kernel was implemented in MBRIS to be able to execute the NOP notification flow on the graphics card. Finally, a sensor simulation application was implemented as a proof of concept using MBRIS, and the performance of the application in MBRIS was compared with the same application developed using the Framework NOP C++ 4.0. Although the results of the experiment carried out were not promising in terms of performance, with the implementation in the MBRIS 0.1 Framework presenting superior execution times to the implementation of the operations in the PON C++ 4.0 Framework in all scenarios, they demonstrate a technique for implementing the logical-causal flow of NOP notifications through SpMV scenarios.pt_BR
dc.languageporpt_BR
dc.publisherUniversidade Tecnológica Federal do Paranápt_BR
dc.rightsopenAccesspt_BR
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/pt_BR
dc.subjectProgramação (Computadores)pt_BR
dc.subjectSistemas especialistas (Computação)pt_BR
dc.subjectAquisição de conhecimento (Sistemas especialistas)pt_BR
dc.subjectMatrizes esparsaspt_BR
dc.subjectOpenCL (linguagem de programação de computador)pt_BR
dc.subjectC++ (Linguagem de programação de computador)pt_BR
dc.subjectComputer programmingpt_BR
dc.subjectExpert systems (Computer science)pt_BR
dc.subjectKnowledge acquisition (Expert systems)pt_BR
dc.subjectSparse matricespt_BR
dc.subjectOpenCL (Computer program language)pt_BR
dc.subjectC++ (Computer program language)pt_BR
dc.titleFormalização e implementação de um mecanismo de interferência do paradigma orientado a notificações baseado em multiplicação de matrizes esparsaspt_BR
dc.title.alternativeFormalization and implementation of an inference mechanism for the notification oriented paradigm based on sparse matrix multiplicationpt_BR
dc.typebachelorThesispt_BR
dc.description.resumoSistemas Baseados em Regras (SBR) são sistemas computacionais que organizam o conhecimento em elementos da base de fatos e regras, nos quais alterações nos elementos da base de fatos causam a aprovação/desaprovação de diferentes regras ao longo do fluxo de execução de um programa. SBRs são normalmente implementados por percorrimento de estruturas de dados (computacionalmente custosas) para verificar se os elementos da base de fatos mudaram e para saber quais regras devem ser aprovadas ou desaprovadas com base nessas mudanças, causando redundâncias temporais (i.e., repetição do cálculo de expressões booleanas) e estruturais (i.e., repetição de código). Nesse sentido, o Paradigma Orientado a Notificações (PON) propõe a divisão do programa em entidades notificantes “inteligentes”, as quais notificam suas dependências ao sofrerem alterações nos seus estados internos, eliminando pesquisas com redundâncias temporais e estruturais para a inferência de regras. Em suma, ao ter seu estado interno alterado, um elemento da base de fatos notificará apenas as regras pertinentes a ele, isto é, as regras que dependem dele, para serem aprovadas/ativadas ou desaprovadas/desativadas. O propósito deste trabalho é, por meio da álgebra, formalizar a dependência entre regras e os elementos da base de fatos de um sistema PON como a multiplicação de matrizes esparsas por vetores densos, ou SpMV (Sparse Matrix-Vector Multiplication). A partir da formalização, foi desenvolvido um novo framework do PON em C++, chamado de MBRIS 0.1 (MatrixBased Rule Inference System), o qual implementa um novo mecanismo de inferência orientado a notificações, inspirado em multiplicação de matrizes para animar as notificações. Isto em detrimento da forma usual de implementar na qual uma entidade tem o endereço das notificáveis, o PON, como nos Frameworks PON que, ao ensejo, permitiram linguagens usuais (e.g., C++, Java e C#) trabalharem orientadas a notificações. Além da inovação na forma de notificar, visando aproveitar o hardware de placas de vídeo, especializado em realizar operações com matrizes de forma altamente paralelizável, foi implementado um kernel de OpenCL no MBRIS para ser capaz de executar o fluxo de notificações do PON em placa de vídeo. Por fim, foi implementada uma aplicação de simulação de sensores como prova de conceito utilizando o MBRIS, e comparou-se o desempenho da aplicação em MBRIS com a mesma aplicação desenvolvida utilizando o Framework PON C++ 4.0. Ainda que os resultados do experimento realizado não tenham sido promissores em termos de desempenho, com a implementação em Framework MBRIS 0.1 apresentando tempos de execução superiores aos da implementação em Framework PON C++ 4.0 em todos os cenários, eles demonstram a viabilidade técnica de implementar o fluxo lógico-causal de notificações do PON por meio de operações de SpMV.pt_BR
dc.degree.localCuritibapt_BR
dc.publisher.localCuritibapt_BR
dc.contributor.advisor1Simão, Jean Marcelo-
dc.contributor.advisor-co1Linhares, Robson Ribeiro-
dc.contributor.referee1Linhares, Robson Ribeiro-
dc.contributor.referee2Stadzisz, Paulo Cézar-
dc.contributor.referee3Fabro, João Alberto-
dc.publisher.countryBrasilpt_BR
dc.publisher.programEngenharia de Computaçãopt_BR
dc.publisher.initialsUTFPRpt_BR
dc.subject.cnpqCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOpt_BR
Aparece nas coleções:CT - Engenharia de Computação

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
mecanismoinferenciamatrizes.pdf5,48 MBAdobe PDFThumbnail
Visualizar/Abrir


Este item está licenciada sob uma Licença Creative Commons Creative Commons