sábado, 30 de julio de 2011

Problema do Segmento de Soma Máxima

Escreva um programa que resolva o seguinte problema: dada uma seqüência de n números inteiros
, encontre índices l,r, com l <= r, tais que a soma

seja máxima. Por exemplo, dada a seqüência

1, -3, 6, -4, 2, -5, 1, 8, -4, 2, 3, -1, 2, -3, 1, 3, -5, 3 , -3, 4,

seu programa deve devolver os índices 6 e 15, pois o segmento

1, 8, -4, 2, 3, -1, 2, -3, 1, 3

tem soma igual a 1+8-4+2+3-1+2-3+1+3 = 12, que é máxima.
[Hmmmmm, é máxima mesmo?!?]

A Lógica Fuzzy

A Lógica Fuzzy (FL) se baseia no conceito de Conjuntos Fuzzy apresentado pelo matemático iraniano Lofti Zadeh em 1965 no seu artigo entitulado “Fuzzy Sets”. Ele introduziu estes objetos, os conjuntos fuzzy, em que seus limites não são precisos, ou seja, os números de um conjunto possuem um grau de pertinência a este conjunto, que varia continuamente no intervalo [0, 1], o que se contrapõe ao conceito tradicional de conjuntos numéricos em que um número pertence ou não a um determinado conjunto (Klir, 1995). Esta teoria trouxe uma contribuição muito importante ao conceito moderno de incerteza.

Para representar os conjuntos fuzzy e o grau de pertinência, a FL usa as funções de pertinência. As mais conhecidas são, conforme figura abaixo, a triangular, trapezoidal e a gaussiana.



Para ilustrar melhor segue uma figura com estas operações.

jueves, 28 de julio de 2011

O problema do caixeiro viajante



Suponha que um caixeiro viajante tenha de visitar n cidades diferentes, iniciando e encerrando sua viagem na primeira cidade. Suponha, também, que não importa a ordem com que as cidades são visitadas e que de cada uma delas pode-se ir diretamente a qualquer outra.
O problema do caixeiro viajante consiste em descobrir a rota que torna mínima a viagem total.

Exemplificando o caso n = 4:
se tivermos quatro cidades A, B, C e D, uma rota que o caixeiro deve considerar poderia ser: saia de A e daí vá para B, dessa vá para C, e daí vá para D e então volte a A. Quais são as outras possibilidades ? É muito fácil ver que existem seis rotas possíveis:

ABCDA
ABDCA
ACBDA
ACDBA
ADBCA
ADCBA

miércoles, 27 de julio de 2011

fazendo uma ligação desde minha laptop


Agora chamar a meus familiares é mais economico pelo medio 12voip, para que voce tenha acceso a este servico, primeiramente debe fazer download do software, logo debe criar uma conta nova na programa 12voip instalado no seu computador, voce debe ter conexao a internet, para poder fazer uma ligação a diferentes partes do mundo, o programa 12voip oferece uma oferta especial enquanto voce carga na sua conta 10 euros, para pagar por este servico voce debe ter um cartao visa liberado.
Depois de tudo esse tramite voce tem aceso por cada dia 45 minutos libre para ligar a qualquer numero fixo do mundo, as ligaçoes a celular tem um custo minimo, aproveitem de este servico, comencen a ter maior contato com seus amigos aproveitando esta tecnologia da ultima geração

martes, 26 de julio de 2011

Algoritmo Karatsuba


O algoritmo Karatsuba é um algoritmo de multiplicação rápida. Foi descoberto por Anatolii Alexeevitch Karatsuba em 1960 e publicado em 1962. Que reduz a multiplicação de dois números de n dígitos no máximo 3 n^{\log_23}\approx 3 n^{1.585}.
Este algoritmo tem aplicações diversas na área da programação linear inteira, um deles é o produto de duas matrizes, conhecido por algoritmo de Strassen

lunes, 25 de julio de 2011

Considerações em Programação em Cuda


O que é GPU?
GPU são placas gráficas que tem um poder computacional muito grande. Inicialmente foram projetadas para o processamento gráfico em 3D.Entre os fabricantes de GPU, a nVidia se sobressair. Ela tem uma linha de placas muito boa. Com alta referências. Uma GPU tem alta largura de banda. Executa calculo de pontos flutuantes muito rápido. Em media 10 operações para 1 operação comparada com a CPU. Em comparação com um processador de ponta, o preço da GPU é muito menor.

Arquitetura de uma GPU
O grande segredo de um uma GPU ser tão poderosa, encontrasse em sua arquitetura. GPUs utilizam um maior número de transistores para colocar mais ALUs (Arithmetic Logic Unit) simplificadas. Controle de fluxo mais simples: Feita para aplicações paralelas onde as mesmas operações são aplicas sobre um grande conjunto de dados.

domingo, 24 de julio de 2011

RoboMind: Jogo Eletrônico


ROBO MIND é uma nova linguagem de programação muito simples e educativo que irá familiarizá-lo com o básico de ciência da computação pela programação do seu próprio robô. Além de uma introdução em técnicas de programação popular, você também vai ganhar a introspecção em áreas como a robótica e inteligência artificial.fonte(Robomind.net)
ROBO foi concebido de tal forma que você pode começar a explorar e programar imediatamente. A linguagem de programação especial foi criada, que consiste em um conjunto conciso de regras e destina-se a programação de um robô. Como resultado, há uma série de oportunidades para criar programas em sua própria experiência e os princípios que estava no coração da maioria das outras linguagens de programação.

viernes, 22 de julio de 2011

Robocode: Jogo Eletrônico para começar a programar


Aproveitando os projectos de desenvolvimento livre pela comunidade para dar ensinamento de diversas áreas tais como processamento da informação, especificamente Robocode; este projecto desenvolvido originalmente pela IBM. "Robocode é um jogo de competição entre robos virtuais. Do qual utiliza-se da linguagem java para implementar métodos e eventos das ações que o robô deverá tomar. O que vence nessa competição é a lógica. Quem tiver a melhor estratégia vence. (Fonte Wikipédia)".
Estou envolvido num projecto de desenvolvimento de desarrolho de jogos electrónicos para dar ensinamento no curso processamento da informação, estou fazendo manuais e guias de usuário, para dar aulas aos primeiros anos na UFABC
Em geral, em diversas universidades, esta sendo usado projectos similares Robomind, RoboLab, e Robocode onde cada ano também organizam maratonas de programação Robocode as melhores estratégias são os ganhadores, aquele que vencerei os demais robôs é o ganhador da maratona.
Então agora aprender a programar é mais divertido e simples.

Cuda: Multiples procesadores em paralelo


Cada vez se hace mas acequible el acceso a GPUs (Unidad de procesamiento gráfico) las primeras aplicaciones fueron a imagenes, puesto que trabajar con imagenes es trabajar con una basta cantidad de informacion divididas por pixeles, una definicion mas formal "La unidad de procesamiento gráfico o GPU (acrónimo del inglés graphics processing unit) es un procesador dedicado al procesamiento de gráficos u operaciones de coma flotante, para aligerar la carga de trabajo del procesador central en aplicaciones como los videojuegos y o aplicaciones 3D interactivas. De esta forma, mientras gran parte de lo relacionado con los gráficos se procesa en la GPU, la CPU puede dedicarse a otro tipo de cálculos (como la inteligencia artificial o los cálculos mecánicos en el caso de los videojuegos)." Fuente Wikipedia
Dentro de los paquetes de software libre para programar GPUs se encuentra CUDA, el cual esta conformado de varias librerias que permiten obtener las ventajas de las GPUs atraves del lenguaje C "CUDA son las siglas de Compute Unified Device Architecture que hace referencia tanto a un compilador como a un conjunto de herramientas de desarrollo creadas por nVidia que permiten a los programadores usar una variación del lenguaje de programación C para codificar algoritmos en GPUs de nVidia." Fuente Wikipedia
Dentro del mercado brasilero, cada vez mas, esta mas exigente la mano de obra calificada bien renumerada de programadores en GPUs asi que es una buena oportunidad de comenzar a programar CUDA, en la USP existe una escuela de programacion en alto desempenho

jueves, 21 de julio de 2011

Software na Iniciação Científica


Dentro de las herramientas de software libre, disponibles para escribir articulos cientificos; el cual es usado por muchos es LATEX; una definicion con mayor rigor conceptual de LATEX se encuentra en wikipedia
"(escrito LaTeX en texto plano) es un sistema de composición de textos, orientado especialmente a la creación de libros, documentos científicos y técnicos que contengan fórmulas matemáticas.
LaTeX está formado por un gran conjunto de macros de TeX, escrito por Leslie Lamport en 1984, con la intención de facilitar el uso del lenguaje de composición tipográfica, , creado por Donald Knuth. Es muy utilizado para la composición de artículos académicos, tesis y libros técnicos, dado que la calidad tipográfica de los documentos realizados con LaTeX es comparable a la de una editorial científica de primera línea." fuente wikipedia

Para escribir articulos cientificos en mi caso uso miktex 2.9 como plataforma de LaTex
"MiKTeX es una distribución TeX/LaTeX para Microsoft Windows que fue desarrollada por Christian Schenk." fuente wikipedia

y texnic center como editor
"TeXnicCenter es un editor software libre de LaTeX para Windows, el cual integra en sí mismo las herramientas necesarias para la composición de texto científico, desde una ventana de compilación integrada, una completa ayuda y manual de LaTeX para los usuarios primerizos, así como un entorno personalizable para los usuarios avanzados." fuente wikipedia

Desde ya pueden ir empezando a realizar algunos ejercicios escribiendo pequenhos trozos de anecdotas e historietas que gusten transmitir a los colegas de su dia a dia en el centro de labores, o en el estudio, o en casa.