Giter VIP home page Giter VIP logo

tag171's Introduction

Links de Amizade

Primeiro projeto da matéria de Teoria e Aplicação de Grafos (TAG) do semestre de 2017/1.

Execução

Para executar este programa basta executar os seguintes comandos no terminal:

  $ bash run_all.sh

Este comando acima compila o programa utilizando o Makefile e já o executa em seguida. Caso queira só executar o programa sem necessariamente compilar, executar o seguinte comando:

  $ ./main

Pré-requisitos do sistema

Este programa foi implementado utilizando o sistema operacional macOS Sierra, versão 10.12.3. A linguagem de programação utilizada para implementar todo o projeto foi C++11.

Detalhes sobre o projeto

Este programa utiliza o arquivo amigos.txt para gerar um grafo de ligação de amizades dos alunos da turma A de TAG de 2017/1. Este arquivo pode conter algumas inconsistências sobre as ligações pois foi gerado por humanos desatentos, portanto, o programa já trata estas inconsistências ao inserir alguma ligação a um dado vértice, deixando assim um grafo não direcionado.

Funcionalidades

O programa realiza as seguintes funcionalidades a partir do menu principal:

  • Opção 1 : Calcula todos os graus dos vértices do grafo e imprime em ordem decrescente estes dados no seguinte formato MATRICULA has X friends, X representa o número de grau do vértice vinculado aquela matrícula.

  • Opção 2 : Calcula o maior clique do grafo e imprime no seguinte formato Existem X cliques máximos maximais de tamanho Y em cada clique. \n Clique 1. Nome : Z. Neste programa com a lista fornecida foi possível encontrar 3 cliques máximos com tamanhos iguais a 6, portanto será mostrado todos estes cliques encontrados.

  • Opção 3 : Permite sair do programa.

Fluxo do programa

  • Lê os dados de matrícula, nome e ligações de cada aluno;
  • Insere os dados de matrícula e nome ao vértices principais;
  • Processa e insere no grafo cada referência da ligação de cada aluno;
  • Conta o grau de cada vértice e guarda este dado;
  • Executa o algoritmo de Bron-Kerbosch para calcular todos os cliques maximais do grafo;
  • Ordena apenas os maiores cliques maximais encontrados pelo algoritmo acima;
  • Mostra o menu;
  • Capta opção do usuário;
  • Executa ação que o usuário requisitou;
  • Fecha o programa.

Autoria

tag171's People

Contributors

dayof avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.