{"id":28223017,"url":"https://github.com/samuelterra22/timing-table-with-graph-coloring","last_synced_at":"2026-05-19T04:04:39.287Z","repository":{"id":36959704,"uuid":"224020650","full_name":"samuelterra22/Timing-Table-With-Graph-Coloring","owner":"samuelterra22","description":null,"archived":false,"fork":false,"pushed_at":"2023-03-07T00:23:02.000Z","size":234,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-11T20:07:21.143Z","etag":null,"topics":["allocation","coloring","graph","huristic","instances","linux","optimization","paa","python","simulated-annealing","table","timing","timing-table"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samuelterra22.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-11-25T19:01:36.000Z","updated_at":"2021-12-13T11:45:04.000Z","dependencies_parsed_at":"2023-02-12T21:32:02.420Z","dependency_job_id":null,"html_url":"https://github.com/samuelterra22/Timing-Table-With-Graph-Coloring","commit_stats":{"total_commits":103,"total_committers":4,"mean_commits":25.75,"dds":0.4563106796116505,"last_synced_commit":"30a21150f266664b92a177b972f3d540411eff7a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/samuelterra22/Timing-Table-With-Graph-Coloring","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samuelterra22%2FTiming-Table-With-Graph-Coloring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samuelterra22%2FTiming-Table-With-Graph-Coloring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samuelterra22%2FTiming-Table-With-Graph-Coloring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samuelterra22%2FTiming-Table-With-Graph-Coloring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samuelterra22","download_url":"https://codeload.github.com/samuelterra22/Timing-Table-With-Graph-Coloring/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samuelterra22%2FTiming-Table-With-Graph-Coloring/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268378965,"owners_count":24240907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["allocation","coloring","graph","huristic","instances","linux","optimization","paa","python","simulated-annealing","table","timing","timing-table"],"created_at":"2025-05-18T07:14:37.111Z","updated_at":"2026-05-19T04:04:34.223Z","avatar_url":"https://github.com/samuelterra22.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Timing Table With Graph Coloring\n\n\n### Instalar dependências do Linux\n\n```shell script\nsudo apt update\nsudo apt install build-essential \\\n                 software-properties-common \\\n                 python3-pip \\\n                 python3-distutils\n```\n\n### Criar ambiente e instalar dependências do Python\n\n```shell script\npip3 install virtualenv\nvirtualenv venv\nsource venv/bin/activate\npip install -r requirements.txt\n```\n\n### Introdução\n\nO planejamento de horários em instituições de ensino constitui um desafio para diretores e coordenadores pedagógicos. De fato, trata-se de uma tarefa passível a erros, devido ao seu caráter combinatório, e que exige demasiado tempo de elaboração. O problema consiste em designar horários a turmas já pré-estabelecidas, levando em conta as seguintes restrições obrigatórias:\n\n- não é permitido a alocação de duas aulas para o mesmo professor no mesmo horário;\n- não pode haver duas aulas para a mesma turma no mesmo horário;\n- todas as aulas devem ser alocadas ao longo dos dias de funcionameno da escola e turnos de aula pré-determinados;\n- professores não devem ser alocados m horários nos quais eles não podem estar presentes.\n\nAlgumas características são consideradas desejáveis, variando de acordo com as recomendações pedagógicas e cunho pessoal. Tais particularidades são listadas a seguir:\n\n- uma turma não deverá ter três ou mais aulas geminadas da mesma disciplina, em horários sequenciais;\n- não deverá haver horários de aula separados por grandes janelas entre aulas, para a mesma turma. Exemplo: suponha que durante o dia, os alunos tivessem 5 horários de aulas. Então, considere que no 1º e 2º horários houvesse aula, depois no 3º horários houvesse aula, depois no 3º houvesse uma janela, e nos 4º e 5º horários os alunos voltassem a ter aulas. Logo, a solução sofreria uma penalidade. O ideial seria ter 4 aulas sequenciais, e o 5º horário livre.\n- deve-se buscar atender às preferências de cada professor em relação a dias ou horários em que possa lecionar.\n\nA atividade em questão pode ser automatizada, e você, detentor de conhecimentos em Projeo de Análise de Algoritmos, pode contribuir para auxiliar os responsáveis pela elaboração de horários.\n\n### Objetivo\n\nDesenvolva um algoritmo eficiente que encontre a distribuição de horários para cada turma, minimizando o número de restrições desejáveis não atendidas. Para tanto, implemente uma abordagem baseada em coloração de vértices.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamuelterra22%2Ftiming-table-with-graph-coloring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamuelterra22%2Ftiming-table-with-graph-coloring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamuelterra22%2Ftiming-table-with-graph-coloring/lists"}