69 resultados para COMMON LISP (Linguagem de programação de computador)


Relevância:

20.00% 20.00%

Publicador:

Resumo:

A Realidade Aumentada veio alterar a percepção que o ser humano tem do mundo real. A expansão da nossa realidade à Realidade Virtual possibilita a criação de novas experiencias, cuja aplicabilidade é já tida como natural em diversas situações. No entanto, potenciar este tipo de interacção pode ser um processo complexo, quer por limitações tecnológicas, quer pela gestão dos recursos envolvidos. O desenvolvimento de projectos com realidade aumentada para fins comerciais passa assim muitas vezes pela optimização dos recursos utilizados tendo em consideração as limitações das tecnologias envolventes (sistemas de detecção de movimento e voz, detecção de padrões, GPS, análise de imagens, sensores biométricos, etc.). Com a vulgarização e aceitação das técnicas de Realidade Aumentada em muitas áreas (medicina, educação, lazer, etc.), torna-se também necessário que estas técnicas sejam transversais aos dispositivos que utilizamos diariamente (computadores, tablets, telemóveis etc.). Um dominador comum entre estes dispositivos é a internet uma vez que as aplicações online conseguem abarcar um maior número de pessoas. O objectivo deste projecto era o de criar uma aplicação web com técnicas de Realidade Aumentada e cujos conteúdos fossem geridos pelos utilizadores. O processo de investigação e desenvolvimento deste trabalho passou assim por uma fase fundamental de prototipagem para seleccionar as tecnologias que melhor se enquadravam no tipo de arquitectura pretendida para a aplicação e nas ferramentas de desenvolvimento utilizadas pela empresa onde o projecto foi desenvolvido. A aplicação final é composta por um FrontOffice, responsável por mostrar e interpretar as aplicações criadas e possibilitar a integração com outras aplicações, e um BackOffice que possibilita aos utilizadores, sem conhecimentos de programação, criar novas aplicações de realidade aumentada e gerir os conteúdos multimédia utilizados. A aplicação desenvolvida pode servir de base para outras aplicações e ser reutilizável noutros âmbitos, sempre com o objectivo de reduzir custos de desenvolvimento e de gestão de conteúdos, proporcionando assim a implementação de uma Framework que permite a gestão de conteúdos em diferentes áreas (medicina, educação, lazer, etc.), onde os utilizadores podem criar as suas próprias aplicações, jogos e ferramentas de trabalho. No decorrer do projecto, a aplicação foi validada por especialistas garantindo o cumprimento dos objectivos propostos.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Actualmente a área da domótica (automação de casas e edifícios) encontra-se em franca expansão, com principal relevância nos países mais desenvolvidos, com um crescimento de mercado de mais de 10% ao ano. Existem inúmeras razoes para a crescente implantação da domótica em edifícios, entre as quais a maior eficiência energética, o aumento da segurança e a redução do custo de aquisição das tecnologias. No que diz respeito as habitações particulares, acrescenta-se essencialmente o aumento do conforto devido ao grau de automação trazido pela domótica. Apesar da domótica não ser uma área cientifico-tecnológica recente, a rápida evolução das tecnologias associadas, nomeadamente a nível das redes de comunicação com e sem fios, foi uma das razoes fundamentais para a elaboração desta Tese. Acresce o facto de o candidato estar actualmente envolvido profissionalmente na área, pelo qual esta Tese assume uma particular importância. Realizou-se um estudo comparativo das tecnologias de domótica mais relevantes, escolhidas quer pelas suas características técnicas quer pela sua implantação de mercado e potencial futuro - KNX/EIB, LonWorks, HomePlug, ZigBee e Z-Wave. Destas, comprovou-se que as duas primeiras são aquelas que, actualmente, tem maior adequabilidade para serem aplicadas em projectos de domótica. Foi por isso efectuado um estudo mais elaborado das tecnologias LonWorks e KNX/EIB, incluindo a forma pratica de instalação/programação, a elaboração de dois demonstradores e de dois projectos (de acordo com um caderno de encargos real), usando as duas tecnologias. Concluiu-se que a tecnologia LonWorks apresenta vantagens no que respeita a escalabilidade (dimensão) dos sistemas. Em termos futuros, prevê-se a necessidade da interoperabilidade entre os nos/redes cablados (tradicionais) com nos/redes sem fio, seguindo a tendência para os ambientes inteligentes (“ambient intelligence/assisted living”, “smart spaces”, “ubiquitous computing).

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Este projecto surgiu no contexto da solicitação de um dos clientes da empresa Castros Iluminações que pretendia um sistema de iluminação decorativa (baseada em LED) de dois conjuntos de 288 janelas, pertencendo cada conjunto a uma fachada diferente do edifício. Este sistema teria que prever a possibilidade de controlar a cor de cada janela individualmente, dando ao cliente a possibilidade de alterar o ambiente decorativo das fachadas do edifício. A utilização de comunicação sem fios foi justificada pela necessidade de evitar a quantidade enorme de cabos que seria necessário passar utilizando os sistemas comerciais convencionais e a impossibilidade de os esconder. Esta solução foi pensada para ser implementada num edifício com 14 Andares, facto que por si só inviabiliza a passajem de cabos. Para interligar todos os dispositivos de iluminação decorativa com um controlador portátil, e eliminar os problemas ligados à cablagem, foi utilizado o protocolo de comunicações sem fios ZigBee™. A escolha recaiu neste protocolo devido a factores como os seus baixos consumos, simplicidade do protocolo comparativamente com outras redes e o seu baixo custo. No desenvolvimento deste projecto foi utilizada a stack da Microchip©, versão gratuita, disponibilizada na internet e os seus transceivers de comunicação Zigbee™, MRF24j40MA. Para fazer a interface de comunicação com o utilizador, foi desenvolvida uma aplicação de Software para correr em computadores com ambiente Windows™. Esta aplicação foi desenvolvida em Visual Studio™ utilizando a linguagem C#. Foram efectuados alguns testes para se perceber a eficiência e robustez da comunicação ZigBee™ e apesar do número de dispositivos disponíveis para ensaios ser muito reduzido, foi possível verificar que, mesmo funcionando correctamente, o desempenho do sistema poderá ser melhorado, quer seja a nível da gestão das comunicações, quer a nível do software informático para controlo do ambiente decorativo das fachadas do edifício. O sistema, no actual estado de desenvolvimento, permite controlar a cor dos vários dispositivos da rede através do computador, com uma resolução de 24bits. A aplicação desenvolvida em Visual Studio™ permite controlar de forma simples e intuitiva para o utilizador, a cor do material iluminativo dos vários dispositivos da rede.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Os laboratórios de experimentação remota estão normalmente associados a tecnologias ou soluções proprietárias, as quais restringem a sua utilização a determinadas plataformas e obrigam ao uso de software específico no lado do cliente. O ISEP possui um laboratório de experimentação remota, baseado em instrumentação virtual, usado no apoio ao ensino da electrónica e construído sobre uma plataforma NIELVIS da National Instruments. O software de controlo da plataforma recorre à linguagem gráfica de programação LabVIEW. Esta é uma ferramenta desenvolvida pela National Instruments que facilita o desenvolvimento de aplicações de sistemas de experimentação remota, mas que possui várias limitações, nomeadamente a necessidade de instalação do lado do cliente de um plug-in, cuja disponibilidade se encontra limitada a determinadas versões de sistemas operativos e de Web Browsers. A experiência anterior demonstrou que estas questões limitam o número de clientes com possibilidade de acesso ao laboratório remoto, para além de, em alguns casos, se ter verificado não ser transparente a sua instalação e utilização. Neste contexto, o trabalho de investigação consistiu no desenvolvimento de uma solução que permite a geração de interfaces que possibilitam o controlo remoto do sistema implementado, e que, ao mesmo tempo, são independentes da plataforma usada pelo cliente.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Tecnologias da Web Semântica como RDF, OWL e SPARQL sofreram nos últimos anos um forte crescimento e aceitação. Projectos como a DBPedia e Open Street Map começam a evidenciar o verdadeiro potencial da Linked Open Data. No entanto os motores de pesquisa semânticos ainda estão atrasados neste crescendo de tecnologias semânticas. As soluções disponíveis baseiam-se mais em recursos de processamento de linguagem natural. Ferramentas poderosas da Web Semântica como ontologias, motores de inferência e linguagens de pesquisa semântica não são ainda comuns. Adicionalmente a esta realidade, existem certas dificuldades na implementação de um Motor de Pesquisa Semântico. Conforme demonstrado nesta dissertação, é necessária uma arquitectura federada de forma a aproveitar todo o potencial da Linked Open Data. No entanto um sistema federado nesse ambiente apresenta problemas de performance que devem ser resolvidos através de cooperação entre fontes de dados. O standard actual de linguagem de pesquisa na Web Semântica, o SPARQL, não oferece um mecanismo para cooperação entre fontes de dados. Esta dissertação propõe uma arquitectura federada que contém mecanismos que permitem cooperação entre fontes de dados. Aborda o problema da performance propondo um índice gerido de forma centralizada assim como mapeamentos entre os modelos de dados de cada fonte de dados. A arquitectura proposta é modular, permitindo um crescimento de repositórios e funcionalidades simples e de forma descentralizada, à semelhança da Linked Open Data e da própria World Wide Web. Esta arquitectura trabalha com pesquisas por termos em linguagem natural e também com inquéritos formais em linguagem SPARQL. No entanto os repositórios considerados contêm apenas dados em formato RDF. Esta dissertação baseia-se em múltiplas ontologias partilhadas e interligadas.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Os sistemas de tempo real modernos geram, cada vez mais, cargas computacionais pesadas e dinâmicas, começando-se a tornar pouco expectável que sejam implementados em sistemas uniprocessador. Na verdade, a mudança de sistemas com um único processador para sistemas multi- processador pode ser vista, tanto no domínio geral, como no de sistemas embebidos, como uma forma eficiente, em termos energéticos, de melhorar a performance das aplicações. Simultaneamente, a proliferação das plataformas multi-processador transformaram a programação paralela num tópico de elevado interesse, levando o paralelismo dinâmico a ganhar rapidamente popularidade como um modelo de programação. A ideia, por detrás deste modelo, é encorajar os programadores a exporem todas as oportunidades de paralelismo através da simples indicação de potenciais regiões paralelas dentro das aplicações. Todas estas anotações são encaradas pelo sistema unicamente como sugestões, podendo estas serem ignoradas e substituídas, por construtores sequenciais equivalentes, pela própria linguagem. Assim, o modo como a computação é na realidade subdividida, e mapeada nos vários processadores, é da responsabilidade do compilador e do sistema computacional subjacente. Ao retirar este fardo do programador, a complexidade da programação é consideravelmente reduzida, o que normalmente se traduz num aumento de produtividade. Todavia, se o mecanismo de escalonamento subjacente não for simples e rápido, de modo a manter o overhead geral em níveis reduzidos, os benefícios da geração de um paralelismo com uma granularidade tão fina serão meramente hipotéticos. Nesta perspetiva de escalonamento, os algoritmos que empregam uma política de workstealing são cada vez mais populares, com uma eficiência comprovada em termos de tempo, espaço e necessidades de comunicação. Contudo, estes algoritmos não contemplam restrições temporais, nem outra qualquer forma de atribuição de prioridades às tarefas, o que impossibilita que sejam diretamente aplicados a sistemas de tempo real. Além disso, são tradicionalmente implementados no runtime da linguagem, criando assim um sistema de escalonamento com dois níveis, onde a previsibilidade, essencial a um sistema de tempo real, não pode ser assegurada. Nesta tese, é descrita a forma como a abordagem de work-stealing pode ser resenhada para cumprir os requisitos de tempo real, mantendo, ao mesmo tempo, os seus princípios fundamentais que tão bons resultados têm demonstrado. Muito resumidamente, a única fila de gestão de processos convencional (deque) é substituída por uma fila de deques, ordenada de forma crescente por prioridade das tarefas. De seguida, aplicamos por cima o conhecido algoritmo de escalonamento dinâmico G-EDF, misturamos as regras de ambos, e assim nasce a nossa proposta: o algoritmo de escalonamento RTWS. Tirando partido da modularidade oferecida pelo escalonador do Linux, o RTWS é adicionado como uma nova classe de escalonamento, de forma a avaliar na prática se o algoritmo proposto é viável, ou seja, se garante a eficiência e escalonabilidade desejadas. Modificar o núcleo do Linux é uma tarefa complicada, devido à complexidade das suas funções internas e às fortes interdependências entre os vários subsistemas. Não obstante, um dos objetivos desta tese era ter a certeza que o RTWS é mais do que um conceito interessante. Assim, uma parte significativa deste documento é dedicada à discussão sobre a implementação do RTWS e à exposição de situações problemáticas, muitas delas não consideradas em teoria, como é o caso do desfasamento entre vários mecanismo de sincronização. Os resultados experimentais mostram que o RTWS, em comparação com outro trabalho prático de escalonamento dinâmico de tarefas com restrições temporais, reduz significativamente o overhead de escalonamento através de um controlo de migrações, e mudanças de contexto, eficiente e escalável (pelo menos até 8 CPUs), ao mesmo tempo que alcança um bom balanceamento dinâmico da carga do sistema, até mesmo de uma forma não custosa. Contudo, durante a avaliação realizada foi detetada uma falha na implementação do RTWS, pela forma como facilmente desiste de roubar trabalho, o que origina períodos de inatividade, no CPU em questão, quando a utilização geral do sistema é baixa. Embora o trabalho realizado se tenha focado em manter o custo de escalonamento baixo e em alcançar boa localidade dos dados, a escalonabilidade do sistema nunca foi negligenciada. Na verdade, o algoritmo de escalonamento proposto provou ser bastante robusto, não falhando qualquer meta temporal nas experiências realizadas. Portanto, podemos afirmar que alguma inversão de prioridades, causada pela sub-política de roubo BAS, não compromete os objetivos de escalonabilidade, e até ajuda a reduzir a contenção nas estruturas de dados. Mesmo assim, o RTWS também suporta uma sub-política de roubo determinística: PAS. A avaliação experimental, porém, não ajudou a ter uma noção clara do impacto de uma e de outra. No entanto, de uma maneira geral, podemos concluir que o RTWS é uma solução promissora para um escalonamento eficiente de tarefas paralelas com restrições temporais.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Major depressive disorder (MDD) is a highly prevalent disorder, which has been associated with an abnormal response of the hypothalamus–pituitary–adrenal (HPA) axis. Reports have argued that an abnormal HPA axis response can be due to an altered P-Glycoprotein (P-GP) function. This argument suggests that genetic polymorphisms in ABCB1 may have an effect on the HPA axis activity; however, it is still not clear if this influences the risk of MDD. Our study aims to evaluate the effect of ABCB1 C1236T, G2677TA and C3435T genetic polymorphisms on MDD risk in a subset of Portuguese patients. DNA samples from 80 MDD patients and 160 control subjects were genotyped using TaqMan SNP Genotyping assays. A significant protection for MDD males carrying the T allele was observed (C1236T: odds ratio (OR) = 0.360, 95% confidence interval [CI]: [0.140– 0.950], p = 0.022; C3435T: OR= 0.306, 95% CI: [0.096–0.980], p = 0.042; and G2677TA: OR= 0.300, 95% CI: [0.100– 0.870], p = 0.013). Male Portuguese individuals carrying the 1236T/2677T/3435T haplotype had nearly 70% less risk of developing MDD (OR = 0.313, 95% CI: [0.118–0.832], p = 0.016, FDR p = 0.032). No significant differences were observed regarding the overall subjects. Our results suggest that genetic variability of the ABCB1 is associated with MDD development in male Portuguese patients. To the best of our knowledge, this is the first report in Caucasian samples to analyze the effect of these ABCB1 genetic polymorphisms on MDD risk.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

A colaboração multidisciplinar é essencial para uma interacção homem-computador (IHC) efectiva. Historicamente a ciência dos computadores, a psicologia e as ciências sociais actuavam como disciplinas independentes, mas com o aumento da frequência na utilização das tecnologias da informação e comunicação em vários aspectos do dia-a-dia, a funcionalidade e acessibilidade assumiram uma importância cada vez maior. Neste artigo é apresentada uma reflexão sobre a multidisciplinaridade e transversalidade da IHC em termos tecnológicos e tendências futuras.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Sendo uma forma natural de interação homem-máquina, o reconhecimento de gestos implica uma forte componente de investigação em áreas como a visão por computador e a aprendizagem computacional. O reconhecimento gestual é uma área com aplicações muito diversas, fornecendo aos utilizadores uma forma mais natural e mais simples de comunicar com sistemas baseados em computador, sem a necessidade de utilização de dispositivos extras. Assim, o objectivo principal da investigação na área de reconhecimento de gestos aplicada à interacção homemmáquina é o da criação de sistemas, que possam identificar gestos específicos e usálos para transmitir informações ou para controlar dispositivos. Para isso as interfaces baseados em visão para o reconhecimento de gestos, necessitam de detectar a mão de forma rápida e robusta e de serem capazes de efetuar o reconhecimento de gestos em tempo real. Hoje em dia, os sistemas de reconhecimento de gestos baseados em visão são capazes de trabalhar com soluções específicas, construídos para resolver um determinado problema e configurados para trabalhar de uma forma particular. Este projeto de investigação estudou e implementou soluções, suficientemente genéricas, com o recurso a algoritmos de aprendizagem computacional, permitindo a sua aplicação num conjunto alargado de sistemas de interface homem-máquina, para reconhecimento de gestos em tempo real. A solução proposta, Gesture Learning Module Architecture (GeLMA), permite de forma simples definir um conjunto de comandos que pode ser baseado em gestos estáticos e dinâmicos e que pode ser facilmente integrado e configurado para ser utilizado numa série de aplicações. É um sistema de baixo custo e fácil de treinar e usar, e uma vez que é construído unicamente com bibliotecas de código. As experiências realizadas permitiram mostrar que o sistema atingiu uma precisão de 99,2% em termos de reconhecimento de gestos estáticos e uma precisão média de 93,7% em termos de reconhecimento de gestos dinâmicos. Para validar a solução proposta, foram implementados dois sistemas completos. O primeiro é um sistema em tempo real capaz de ajudar um árbitro a arbitrar um jogo de futebol robótico. A solução proposta combina um sistema de reconhecimento de gestos baseada em visão com a definição de uma linguagem formal, o CommLang Referee, à qual demos a designação de Referee Command Language Interface System (ReCLIS). O sistema identifica os comandos baseados num conjunto de gestos estáticos e dinâmicos executados pelo árbitro, sendo este posteriormente enviado para um interface de computador que transmite a respectiva informação para os robôs. O segundo é um sistema em tempo real capaz de interpretar um subconjunto da Linguagem Gestual Portuguesa. As experiências demonstraram que o sistema foi capaz de reconhecer as vogais em tempo real de forma fiável. Embora a solução implementada apenas tenha sido treinada para reconhecer as cinco vogais, o sistema é facilmente extensível para reconhecer o resto do alfabeto. As experiências também permitiram mostrar que a base dos sistemas de interação baseados em visão pode ser a mesma para todas as aplicações e, deste modo facilitar a sua implementação. A solução proposta tem ainda a vantagem de ser suficientemente genérica e uma base sólida para o desenvolvimento de sistemas baseados em reconhecimento gestual que podem ser facilmente integrados com qualquer aplicação de interface homem-máquina. A linguagem formal de definição da interface pode ser redefinida e o sistema pode ser facilmente configurado e treinado com um conjunto de gestos diferentes de forma a serem integrados na solução final.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Dynamically reconfigurable SRAM-based field-programmable gate arrays (FPGAs) enable the implementation of reconfigurable computing systems where several applications may be run simultaneously, sharing the available resources according to their own immediate functional requirements. To exclude malfunctioning due to faulty elements, the reliability of all FPGA resources must be guaranteed. Since resource allocation takes place asynchronously, an online structural test scheme is the only way of ensuring reliable system operation. On the other hand, this test scheme should not disturb the operation of the circuit, otherwise availability would be compromised. System performance is also influenced by the efficiency of the management strategies that must be able to dynamically allocate enough resources when requested by each application. As those resources are allocated and later released, many small free resource blocks are created, which are left unused due to performance and routing restrictions. To avoid wasting logic resources, the FPGA logic space must be defragmented regularly. This paper presents a non-intrusive active replication procedure that supports the proposed test methodology and the implementation of defragmentation strategies, assuring both the availability of resources and their perfect working condition, without disturbing system operation.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Apresentação no âmbito da Dissertação de Mestrado Orientador: Doutora Alcina Dias

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Mestrado em Engenharia Informática - Área de Especialização em Sistemas Gráficos e Multimédia

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Nos últimos anos começaram a ser vulgares os computadores dotados de multiprocessadores e multi-cores. De modo a aproveitar eficientemente as novas características desse hardware começaram a surgir ferramentas para facilitar o desenvolvimento de software paralelo, através de linguagens e frameworks, adaptadas a diferentes linguagens. Com a grande difusão de redes de alta velocidade, tal como Gigabit Ethernet e a última geração de redes Wi-Fi, abre-se a oportunidade de, além de paralelizar o processamento entre processadores e cores, poder em simultâneo paralelizá-lo entre máquinas diferentes. Ao modelo que permite paralelizar processamento localmente e em simultâneo distribuí-lo para máquinas que também têm capacidade de o paralelizar, chamou-se “modelo paralelo distribuído”. Nesta dissertação foram analisadas técnicas e ferramentas utilizadas para fazer programação paralela e o trabalho que está feito dentro da área de programação paralela e distribuída. Tendo estes dois factores em consideração foi proposta uma framework que tenta aplicar a simplicidade da programação paralela ao conceito paralelo distribuído. A proposta baseia-se na disponibilização de uma framework em Java com uma interface de programação simples, de fácil aprendizagem e legibilidade que, de forma transparente, é capaz de paralelizar e distribuir o processamento. Apesar de simples, existiu um esforço para a tornar configurável de forma a adaptar-se ao máximo de situações possível. Nesta dissertação serão exploradas especialmente as questões relativas à execução e distribuição de trabalho, e a forma como o código é enviado de forma automática pela rede, para outros nós cooperantes, evitando assim a instalação manual das aplicações em todos os nós da rede. Para confirmar a validade deste conceito e das ideias defendidas nesta dissertação foi implementada esta framework à qual se chamou DPF4j (Distributed Parallel Framework for JAVA) e foram feitos testes e retiradas métricas para verificar a existência de ganhos de performance em relação às soluções já existentes.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

A alta e crescente participação da energia eólica na matriz da produção traz grandes desafios aos operadores do sistema na gestão da rede e planeamento da produção. A incerteza associada à produção eólica condiciona os processos de escalonamento e despacho económico dos geradores térmicos, uma vez que a produção eólica efetiva pode ser muito diferente da produção prevista. O presente trabalho propõe duas metodologias de otimização do escalonamento de geradores térmicos baseadas em Programação Inteira Mista. Pretende-se encontrar soluções de escalonamento que minimizem as influências negativas da integração de energia eólica no sistema elétrico. Inicialmente o problema de escalonamento de geradores é formulado sem considerar a integração da energia eólica. Posteriormente foi considerada a penetração da energia eólica no sistema elétrico. No primeiro modelo proposto, o problema é formulado como um problema de otimização estocástico. Nesta formulação todos os cenários de produção eólica são levados em consideração no processo de otimização. No segundo modelo, o problema é formulado como um problema de otimização determinística. Nesta formulação, o escalonamento é feito para cada cenário de produção eólica e no fim determina-se a melhor solução por meio de indicadores de avaliação. Foram feitas simulações para diferentes níveis de reserva girante e os resultados obtidos mostraram que a alta participação da energia eólica na matriz da produção põe em causa a segurança e garantia de produção devido às características volátil e intermitente da produção eólica e para manter os mesmos níveis de segurança é preciso dispor no sistema de capacidade reserva girante suficiente capaz de compensar os erros de previsão.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Este artigo apresenta uma nova abordagem (MM-GAV-FBI), aplicável ao problema da programação de projectos com restrições de recursos e vários modos de execução por actividade, problema conhecido na literatura anglo-saxónica por MRCPSP. Cada projecto tem um conjunto de actividades com precedências tecnológicas definidas e um conjunto de recursos limitados, sendo que cada actividade pode ter mais do que um modo de realização. A programação dos projectos é realizada com recurso a um esquema de geração de planos (do inglês Schedule Generation Scheme - SGS) integrado com uma metaheurística. A metaheurística é baseada no paradigma dos algoritmos genéticos. As prioridades das actividades são obtidas a partir de um algoritmo genético. A representação cromossómica utilizada baseia-se em chaves aleatórias. O SGS gera planos não-atrasados. Após a obtenção de uma solução é aplicada uma melhoria local. O objectivo da abordagem é encontrar o melhor plano (planning), ou seja, o plano que tenha a menor duração temporal possível, satisfazendo as precedências das actividades e as restrições de recursos. A abordagem proposta é testada num conjunto de problemas retirados da literatura da especialidade e os resultados computacionais são comparados com outras abordagens. Os resultados computacionais validam o bom desempenho da abordagem, não apenas em termos de qualidade da solução, mas também em termos de tempo útil.