sexta-feira, 4 de abril de 2014

Serviços de armazenamento em nuvem possibilitam ao usuário guardar seus arquivos em um servidor e acessa-los em qualquer lugar do mundo, existem vários para esse fim, alguns gratuitos e com espaço limitado outros pagos que oferecem espaço ilimitados e outros recursos. Neste artigos vou apresentar os melhores serviços gratuitos do gênero de maneira bem objetiva informando a quantidade de GB grátis, as plataformas suportadas e recursos interessantes.

Copy
O copy é um serviço de armazenamento em nuvem que oferece 15GB gratuitamente, mas se você receber um convite você começa com 20GB, você pode entrar com um convite clicando aqui este é um convite da minha conta, se você também enviar convites a seus amigos você ganha 5GB a cada amigo seu que entrar no site e instalar o software de sincronização automática em algum dispositivo, isso sem  limite de espaço. Esse é o serviço de armazenamento que eu uso.
Ele possui aplicativo para várias plataformas. Basta clicar em qual você quiser e baixar.
Linux e Raspberry Pi
Windows
MAC OS X
iOS
Android
Windows Phone

Dropbox
É outro serviço, um dos mais antigos, mesmo oferecendo apenas 2GB gratuitamente ele possui muitos usuário graças ao nível de confiabilidade que as pessoas tem no serviço, ele é seguro, rápido e estável. No Dropbox a cada amigo que você convidar que entra no site, você ganha 500MB. Aqui está um convite para o Dropbox clique aqui.
Ele possui aplicativo para várias plataformas. Basta clicar em qual você quiser e baixar.
Computadores
Dispositivos móveis

Box
Outro serviço de armazenamento online, esse serviço oferece diversos planos alguns focados em empresas outros focados em usuários, e é cheio de ferramentas como, modificação de arquivos online, integração com office, pre-visualização de arquivos e buscas, para usuários o plano grátis é de 10GB, porem cada arquivo que é enviado para nuvem pode ter no máximo 250MB.
Downloads

Bitcasa
Outro grande serviço de armazenamento, ele permite compartilhamento do conteúdo disponibilizado, os dados são armazenados criptografados, ele possui sistema de controle de versão você pode recuperar um arquivo depois uma mudança indesejada, nele você começa com 5GB e pode alcançar até 20GB convidando amigos, nesse caso você ganha 2GB a cada convidado seu que entrar no site.
Ele possui aplicativo para várias plataformas. Basta clicar em qual você quiser e baixar.

Google Drive
É o serviço de armazenamento online da Google, ele possui integração com todos os serviços da Google, como docs, gmail, picasa entre outros, nele você começa com 15GB para armazenamento e pode atingir até 25GB no máximo.
Ele possui aplicativo para várias plataformas. Basta clicar em qual você quiser e baixar.

OneDrive(SkyDrive)
É um serviço de armazenamento da Microsoft, oferece integração com os serviços da Microsoft com Outlook, Web Office e Office e Windows 8.1, é um dos piores serviço pois oferece apenas 7GB e você pode armazenar arquivos de no máximo 50MB.
Downloads 

 Ubuntu One
É um serviço de armazenamento de arquivos online a Canonical, empresa responsável pelo desenvolvimento do Ubuntu, seu ponto forte é a integração com os serviços e programas do sistema operacional Ubuntu, ele oferece transmissão de música para dispositivos móveis e upload automático de fotos tiradas em dispositivos móveis, ele oferece 5GB de graça e pode alcançar até 20GB gratuitamente.

MEGA
É um serviço com menos recursos, mas oferece 50GB graça, ele o retorno do MegaUpload, ele deve servir apenas como um disco rígido online.
Ele possui aplicativo para várias plataformas. Basta clicar em qual você quiser e baixar.
Downloads

Conclusão
Minha conclusão é que o Copy é o melhor programa para armazenamento de arquivos em nuvem, possui aplicativo para várias plataformas, é rápido, oferece muitos recursos, e podemos conseguir espaço com limite infinito graças aos convites a amigos.

Para quem tem um Blogger quando trocamos o modelo de interface do blog pode acontecer de os comentários do Google Plus sumirem, neste artigo vou ensinar a exibir novamente os comentários do Google Plus.
Acesse sua conta do blog e abra a página de administrador do blog.
Clique em "Modelo".

Depois clique em personalizar HTML.


Pressione as teclas CTRL+F e busque por:
<b:includable id='comment-form' var='post'>
Então após essa linha adicione esse conteúdo:
<div class='cmt_iframe_holder' expr:data-href='data:post.canonicalUrl' expr:data-viewtype='data:post.viewType'/>
Agora clique em salvar modelo e pronto os comentários do Google Plus estão de volta.

<div class='cmt_iframe_holder' expr:data-href='data:post.canonicalUrl' expr:data-viewtype='data:post.viewType'/> - See more at: http://bloggerhow.com/blogger/how-to-implement-google-plus-comments-in-blogger-custom-templates/#sthash.YItpMAxG.dpuf<div class='cmt_iframe_holder' expr:data-href='data:post.canonicalUrl' expr:data-viewtype='data:post.viewType'/> - See more at: http://bloggerhow.com/blogger/how-to-implement-google-plus-comments-in-blogger-custom-templates/#sthash.YItpMAxG.dpuf
<b:includable id='comment-form' var='post'>
<b:includable id='comment-form' var='post'>

quinta-feira, 3 de abril de 2014

O Metro UI CSS 2.0 é um framework para desenvolvimento de interfaces para aplicações web, seus elementos são construído com base no visual dos elementos do Windows 8.1, ele é ótimo para desenvolvimento de aplicações mais complexas pois possui muitos recursos, ele possui inclusive as tiles do Windows 8.1 como você pode ver abaixo.
Vários elementos da ferramenta merecem destaque especial, como o DataPicker que é um seletor de data.
A ferramenta também oferece um calendário.
Temos também janelas.
 E também um recurso semelhante a uma linha do tempo que pode ser usada em softwares para acompanhamento de projetos.
Ela também oferece um relógio que pode configurado da maneira que você quiser com o uso de javascript.
Todas essas ferramentos são desenvolvidas com a interface do Windows 8.1.
Para fazer uso da ferramenta você precisa dos seguintes arquivos e nada mais, essa é a estrutura básica de uma aplicação que faz seu uso.
css
-- metro-bootstrap.css (obrigatório)
-- metro-bootstrap-responsive.css
-- iconFont.css
fonts
-- iconFont.*
-- metroSysIcons.* (obrigatório)
js
-- jquery.min.js (obrigatório)
-- jquery.widget.min.js (obrigatório)
-- jquery.mousewheel.js (obrigatório)
-- metro.min.js (obrigatório)
Ao acessar essa página Clique aqui para acessar, você pode ver tudo que é possível fazer com o uso deste framework.
Para baixar a ferramenta clique aqui e para acessar o site oficial clique aqui. Aproveitem a ferramenta pois ela é gratuita.

segunda-feira, 31 de março de 2014

Os navegadores de internet atualmente estão cheios de recursos, sçao capases de executar arquivos em diversos formatos como imagens, vídeos, músicas arquivos de texto como PDF, e diversos outros arquivos, porém ocorre que por necessidade do desenvolvedor e para facilitar a vida do usuário as veses precisamos que o arquivo seja baixado para o computador do usuário e não aberto no navagador, pois muitos usuários não saberam salvar um arquivo aberto no navegador, abaixo apresentarei um método de resolver esse problema.

Em um arquivo download.php coloque o seguinte conteúdo:
<?php
   $arquivo = $_GET["arquivo"];
   if(isset($arquivo) && file_exists($arquivo)){ //testa se o arquivo e a variavel não esta vazia e se o arquivo realmente existe
      switch(strtolower(substr(strrchr(basename($arquivo),"."),1))){ // verifica a extensão do arquivo para pegar o tipo
         case "pdf": $tipo="application/pdf"; break;
         case "exe": $tipo="application/octet-stream"; break;
         case "zip": $tipo="application/zip"; break;
         case "doc": $tipo="application/msword"; break;
         case "xls": $tipo="application/vnd.ms-excel"; break;
         case "ppt": $tipo="application/vnd.ms-powerpoint"; break;
         case "gif": $tipo="image/gif"; break;
         case "png": $tipo="image/png"; break;
         case "jpg": $tipo="image/jpg"; break;
         case "mp3": $tipo="audio/mpeg"; break;
         case "php": // deixar vazio por seurança
         case "htm": // deixar vazio por seurança
         case "html": // deixar vazio por seurança
      }
      header("Content-Type: ".$tipo); // informa o tipo do arquivo ao navegador
      header("Content-Length: ".filesize($arquivo)); // informa o tamanho do arquivo ao navegador
      header("Content-Disposition: attachment; filename=".basename($arquivo)); // informa ao navegador que é tipo anexo e faz abrir a janela de download, tambem informa o nome do arquivo
      readfile($arquivo); // lê o arquivo
      exit; // aborta pós-ações
   }
?>
Como é possível ver acima um case ficar resposável por definir o tipo do arquivo à partir da extensão, caso você queira adicionar mais tipos, é só adicionar mais um case com a extensão e o tipo do arquivo.

Depois faça um arquivo com o nome index.html e coloque nele o seguinte conteúdo.
<!--
  Este será o link que apontará para o nosso script PHP.
  Use no href "baixar.php?arquivo=" + caminho de seu arquivo;
  No Exemplo abaixo utilizei uma imagem com o nome "imagem.jpg" que esta dentro da pasta "arquivos".
-->
<a href="download.php?arquivo=arquivos/imagem.jpg">Baixar Arquivo</a>
No código acima passamos como um parâmetro via GET o diretório do arquivo que se deseja baixar.
Como foi dito se você quiser adicionar mais algum case segue abaixo uma lista te extensões e tipos que são chamados de Mime types.

ai     application/postscript
aif     audio/x-aiff
aifc     audio/x-aiff
aiff     audio/x-aiff
asc     text/plain
atom     application/atom+xml
au     audio/basic
avi     video/x-msvideo
bcpio     application/x-bcpio
bin     application/octet-stream
bmp     image/bmp
cdf     application/x-netcdf
cgm     image/cgm
class     application/octet-stream
cpio     application/x-cpio
cpt     application/mac-compactpro
csh     application/x-csh
css     text/css
dcr     application/x-director
dif     video/x-dv
dir     application/x-director
djv     image/vnd.djvu
djvu     image/vnd.djvu
dll     application/octet-stream
dmg     application/octet-stream
dms     application/octet-stream
doc     application/msword
dtd     application/xml-dtd
dv     video/x-dv
dvi     application/x-dvi
dxr     application/x-director
eps     application/postscript
etx     text/x-setext
exe     application/octet-stream
ez     application/andrew-inset
gif     image/gif
gram     application/srgs
grxml     application/srgs+xml
gtar     application/x-gtar
hdf     application/x-hdf
hqx     application/mac-binhex40
htm     text/html
html     text/html
ice     x-conference/x-cooltalk
ico     image/x-icon
ics     text/calendar
ief     image/ief
ifb     text/calendar
iges     model/iges
igs     model/iges
jnlp     application/x-java-jnlp-file
jp2     image/jp2
jpe     image/jpeg
jpeg     image/jpeg
jpg     image/jpeg
js     application/x-javascript
kar     audio/midi
latex     application/x-latex
lha     application/octet-stream
lzh     application/octet-stream
m3u     audio/x-mpegurl
m4a     audio/mp4a-latm
m4b     audio/mp4a-latm
m4p     audio/mp4a-latm
m4u     video/vnd.mpegurl
m4v     video/x-m4v
mac     image/x-macpaint
man     application/x-troff-man
mathml     application/mathml+xml
me     application/x-troff-me
mesh     model/mesh
mid     audio/midi
midi     audio/midi
mif     application/vnd.mif
mov     video/quicktime
movie     video/x-sgi-movie
mp2     audio/mpeg
mp3     audio/mpeg
mp4     video/mp4
mpe     video/mpeg
mpeg     video/mpeg
mpg     video/mpeg
mpga     audio/mpeg
ms     application/x-troff-ms
msh     model/mesh
mxu     video/vnd.mpegurl
nc     application/x-netcdf
oda     application/oda
ogg     application/ogg
pbm     image/x-portable-bitmap
pct     image/pict
pdb     chemical/x-pdb
pdf     application/pdf
pgm     image/x-portable-graymap
pgn     application/x-chess-pgn
pic     image/pict
pict     image/pict
png     image/png
pnm     image/x-portable-anymap
pnt     image/x-macpaint
pntg     image/x-macpaint
ppm     image/x-portable-pixmap
ppt     application/vnd.ms-powerpoint
ps     application/postscript
qt     video/quicktime
qti     image/x-quicktime
qtif     image/x-quicktime
ra     audio/x-pn-realaudio
ram     audio/x-pn-realaudio
ras     image/x-cmu-raster
rdf     application/rdf+xml
rgb     image/x-rgb
rm     application/vnd.rn-realmedia
roff     application/x-troff
rtf     text/rtf
rtx     text/richtext
sgm     text/sgml
sgml     text/sgml
sh     application/x-sh
shar     application/x-shar
silo     model/mesh
sit     application/x-stuffit
skd     application/x-koan
skm     application/x-koan
skp     application/x-koan
skt     application/x-koan
smi     application/smil
smil     application/smil
snd     audio/basic
so     application/octet-stream
spl     application/x-futuresplash
src     application/x-wais-source
sv4cpio     application/x-sv4cpio
sv4crc     application/x-sv4crc
svg     image/svg+xml
swf     application/x-shockwave-flash
t     application/x-troff
tar     application/x-tar
tcl     application/x-tcl
tex     application/x-tex
texi     application/x-texinfo
texinfo     application/x-texinfo
tif     image/tiff
tiff     image/tiff
tr     application/x-troff
tsv     text/tab-separated-values
txt     text/plain
ustar     application/x-ustar
vcd     application/x-cdlink
vrml     model/vrml
vxml     application/voicexml+xml
wav     audio/x-wav
wbmp     image/vnd.wap.wbmp
wbmxl     application/vnd.wap.wbxml
wml     text/vnd.wap.wml
wmlc     application/vnd.wap.wmlc
wmls     text/vnd.wap.wmlscript
wmlsc     application/vnd.wap.wmlscriptc
wrl     model/vrml
xbm     image/x-xbitmap
xht     application/xhtml+xml
xhtml     application/xhtml+xml
xls     application/vnd.ms-excel
xml     application/xml
xpm     image/x-xpixmap
xsl     application/xml
xslt     application/xslt+xml
xul     application/vnd.mozilla.xul+xml
xwd     image/x-xwindowdump
xyz     chemical/x-xyz
zip     application/zip

domingo, 30 de março de 2014

EPOC

É um dos sistemas operacionais para dispositivos móveis mais antigos que vamos tratar, desenvolvido pela Psion, sendo que os primeiros aparelhos lançados com o sistema operacional eram de 1989, é um sistema dedicado a PDAs.

Versões
EPOC16
Os dispositivos que usavam essa versão do sistema usavam processadores da família Intel 8086 de 16bits, os seus programas eram escritos em Assembly e C, a interface gráfica dessa versão era controlada por teclado, a Psion lançou vários dispositivos com o sistema como o MC200, MC400, Series 3a e Series 3c, os aparelhos são tão antigos que hoje ocupam lugar em museus de tecnologia.

Series 3a da Psion e visual do sistema EPOC16

EPOC32
A primeira vez em que o EPOC32 apareceu foi no modelo Series 5 da Psion em 1997, o 32 no nome do sistema indicava que ele era um sistema para processadores 32bits, essa versão do sistema usava uma base completamente nova, a interface usada por essa versão do sistema era chamada Eikon e dava possibilidade aos desenvolvedores de criarem suas próprias interfaces com base nos elementos da Eikon, esse sistema contava também com proteção de memória. Para evitar confusões com o nome EPOC16, o EPOC32 passou a ser chamado de Symbian OS e é chamado assim até hoje, sendo muito usado em celulares da Nokia, o Symbian OS também será tratado em nossa série de sistema operacionais móveis.
Series 5 MX PRO da Psion e visual do sistema EPOC32
 Brew MP
O Brew MP é um sistema pouco conhecido, desenvolvido pela Qualcomm e lançado em setembro de 2001, seu foco está em dispositivos de baixo custo, ele não tem a intenção de equipar smartphones de alto poder de processamento, para poder desenvolver para esse sistema é necessário ter conhecimento em linguagem de programação C ou C++. É difícil encontrar mais informações sobre o sistema pois ele não recebe muito destaque, infelizmente não consegui sequer encontrar em qual versão ele se encontra.
Existem vários modelos com esse sistema no mercado, a sua interface é adaptada de acordo com a necessidade do fabricante, um exemplo de aparelho que usa o sistema é o LG T385, que é um aparelho de baixo custo mais com vários recursos, ao procurar sobre o celular percebemos que o sistema nem recebe destaque, pois e o Brew MP é uma solução de baixo custo para as fabricantes.
Visual do Brew MP com interface modelada pela LG, modelo de celular LG T385
Ao fazer um trabalho para faculdade sobre o software de otimização GLPK percebi que a quantidade de conteúdo é pequena então, eu com a ajuda de meus colegas de faculdade Maurício Galdino e Vinícius Hastenreiter estamos disponibilizando o conteúdo de nosso artigo, esperamos que possa ajudar muitas pessoas.


1. INTRODUÇÃO
Para solucionar problemas de otimização é usado a programação linear que é um método eficiente de um algoritmo simplex. A programação linear é muito usada para solucionar problemas na área financeira e outros segmentos. Para solucionar problemas de programação linear são disponíveis várias ferramentas.
Uma destas ferramentas é o GLPK que é um software livre que faz parte do projeto GNU. O GLPK consiste em um pacote de softwares que possui várias funções escritas em ANSI C para a resolução de problemas. Duas aplicações são usadas, GLPSOL e TSPSOL. O GLPSOL é responsável por resolver problemas de programação inteira mista e programação linear, enquanto o TSPSOL resolve o problema do caixeiro viajante.
2. DEFINIÇÃO
O GLPK é um biblioteca open source desenvolvido em linguagem de programação C, sua sigla significa GNU Linear Programming Kit usado para solucionar problemas de otimização, como foi dito ele é uma biblioteca e não possui uma função main que é um programa principal, o seu código implementa o algoritmo simplex, ponto interior primitivo-dual, de ramificação e de ligação, bem como muitos outros algoritmos. No GLPK podemos usar o GUSEK como interface gráfica.
3. FUNCIONAMENTO
O GLPK é um software utilizado para resolver problemas de programação linear, programação inteira mista e problemas correlacionados, que utiliza a linguagem GNU MathProg modeling language, que tem funções escritas em ANSI C que auxilia na resolução dos problemas, com objetivo de fazer a modelagem. Suas principais informações para otimização do problema, são:
  • Função objetiva;
  • Restrições;
  • Informações de variáveis;
  • Limites;
  • Variáveis.
Com essas informações inseridas no programa, o GLPK executa um método simplex para resolução do problema. É um método simples que caminha pelos vértices a procura da melhor solução e para quando é encontrado uma solução vizinha com o valor menor, essa seria a solução ótima do problema. Em dois casos pode não existir a solução ótima, uma quando não se encontra uma solução viável para o problema, isso ocorre devido as restrições incompatíveis; ou quando não existe máximo ou mínimo, ou seja, uma ou mais variáveis tendem ao infinito e as restrições continuam sendo satisfeitas, fornecendo resultados com valores sem limites para a função objetiva (SOUZA, 2009).
A duas formas de se utilizar o GLPK, uma é como solver (aplicação glpsol) ou utilizando aplicativo em C (GUSEK) que é a forma mais simples, os dados são inseridos e ao compilar os resultados são mostrados numa janela, pois ele trabalha com as bibliotecas que o pacote oferece para resolver os problemas dinamicamente. A outra forma de se resolver o problema através do solver glpsol, os dados deve ser descrito em arquivo texto que é utilizado como entrada para a aplicação, é escrito na linguagem de modelagem GNU Math Prog, essa linguagem possui um conjunto de declarações e dados que são descritos no documento lang.pdf4 que acompanha o pacote. Depois o texto é traduzido de forma que as informações são lidas, logo os resultados são apresentados no console.
4. FORMATOS UTILIZADOS PELO GLPK
GLPK é muito utilizado, pois ele suporta vários formatos para entrada dos modelos a serem resolvidos preferencialmente deve ser escolhido os seguintes:
  • GNU (MathProg modeling language): (modelo descrito por meio da Linguagem Mathpro), Modelo tem o objetivo de resolvedor sendo invocado externamente (comando system). Isto é, uma das tarefas do seu programa será construir dados a partir das instancias fornecidas, sua função é escrita em ANSI C, que ajuda na modelagem do problema.
  • LP CPLEX LP File Format: é uma ferramenta para solucionar problemas de otimização linear, geralmente referidas como problemas de Programação Linear (LP). CPLEX LP, um formato orientado a linha que muitos usuários podem achar mais natural. A entrada interativa (usando o formato CPLEX LP) também é uma possibilidade para pequenos problemas.
Programa linear descrito no formato CPLEX LP. Neste caso, seu programa deverá gerar o arquivo LP a partir das instâncias e invocar externamente o resolvedor.
Componentes:
  • Função-objetivo.
  • Restrições.
  • Informações de variáveis.
  • Limites.
  • Variáveis inteiras genéricas.
  • Variáveis binárias.
Algumas Vantagens de usar CPLEX LP:

  • Padrão criado para uso com o resolvedor CPLEX;
  • Mais fácil e prático do que o formato MPS;
  • Aceito nos principais resolvedores modernos
  • Arquivos podem ser convertidos para MPS.
Outros formatos podem ser aceitos desde que o código correspondente esteja muito bem comentado, de modo a explicitar as variáveis e restrições do seu modelo.
5. EXEMPLO DE PROBLEMA DE PL
A Giapetto’s Woodcarving Inc. fabrica dois tipos de brinquedos de madeira: soldados e trens. Um soldado é vendido por $ 27 e utiliza $ 10 de matéria-prima. Cada soldado que é fabricado aumenta os custos de mão-de-obra e de despesas gerais variáveis do Giapetto em $ 14. Um trem é vendido por $ 21 e utiliza $ 9 de matéria-prima. Cada trem construído aumenta os custos de mão-de-obra e de despesas gerais variáveis do Giapetto em $ 10. A fabricação de soldados e trens de madeira requer dois tipos de mão-de-obra qualificada: carpintaria e acabamento. Um soldado requer 2 horas de mão-de-obra de acabamento e 1 hora de mão-de-obra de carpintaria. Um trem requer 1 horas de mão-de-obra de acabamento e 1 hora de mão-de-obra de carpintaria. A cada semana, o Giapetto pode obter toda a matéria-prima necessária, mas somente 100 horas de acabamento e 80 horas de carpintaria. A demanda para trens é ilimitada, mas no máximo 40 soldados são comprados a cada semana. O Giapetto deseja maximizar os lucros semanais (receita – custos).
Informações
  1. Dois tipos de brinquedos de madeira: soldados e trens.
  2. O soldado é vendido por $ 27, utiliza $ 10 de matéria-prima e aumenta os custos de mão-de-obra e despesas de $ 14.
  3. O trem é vendido por $ 21, utiliza $ 9 de matéria-prima e aumenta os custos de mão-de-obra e despesas em $ 10.
  4. Um soldado requer 2 horas de mão-de-obra e acabamento e 1 hora de mão-de-obra de carpintaria.
  5. Um trem requer 1 hora de mão-de-obra de acabamento e 1 hora de mão-de-obra de carpintaria.
  6. Só são permitidos 100 horas de acabamento e 80 horas de carpintaria estão disponíveis por semana.
  7. Por semana tem uma demanda ilimitada de trens e soldados no máximo 40 serão vendidos.
Objetivo
Encontrar o número máximo de soldados e trens para maximizar o lucro semanal.
Modelagem
Primeiramente devemos estabelecer as variáveis de decisão. Na loja do Giapetto a função objetivo é o lucro que é a quantidade de soldados e trens produzido por semana.
Variáveis de decisão
  • X1: Número de soldados produzidos por semana.
  • X2: Número de trens produzidos por semana.
A função objetivo deste problema é receita menos o custo para cada brinquedo, como a função X1 e X2.
  • Z = (27 – 10 - 14)x1 + (21 – 9 - 10)x2 = 3x1 + 2x2
Como os soldados e os trens requerem tempo de acabamento, os dois precisam ser levados em consideração. Vamos supor que 10 soldados e 20 trens foram contruidos. A quantidade de horas de acabamento necessárias seriam de 10 vezes 2 horas (para soldados) mais 20 vezes 1 hora (para trens) para um total de 40 horas de mão-de-obra de acabamento. A restrição geral em termos das variáveis de decisão é:
  • 2x1 + x2 ≤ 100
A restrição de horas de carpintaria é descoberta da mesma forma:
  • X1 + x2 ≤ 80
Restrição da demanda de soldados que poder haver no máximo 40 soldados produzidos por semana:
  • X1 ≤ 40
A demanda de trens é ilimitada e por isso nehuma restrição pode ser escrita. Por tanto o modelo está construido com as equações:
  • 2x1 + x2 ≤ 100 (restrição de acabamento);
  • max z = 3x1 + 2x2 ( objetivo da função);
  • X1 ≤ 40 (demanda de soldados);
  • X1 ≥ 0, x2 ≥ 0 (restrições);
  • x1 + x2 ≤ 80 (restrição de carpintaria).
5.1 UTILIZANDO O GLPK PARA SOLUCIONAR O MODELO
A fórmula matemática para solucionar o problema de Giapetto nessecita ser escrita com a linguagem MathProg do GNU. È necessário declarar:
  • As variáveis de decisão
  • A função objetivo
  • Os limitadores
  • O conjunto de dados do problema
A primeira etapa no MathPro é declarar as variáveis de decisão. As linhas 8 e 9 declaram x¹ e x². As variáveis de decisão começam com a palavra chave var. A cada sentença no MathProg do GNU deve terminar com um ponto e vírigula (;) Lembrando que x¹ são os números de soldados e x² o número de trens.
Na linha 12 é declarado a função de destino (objetivo). A função de objetivo z é denominada representando 3x¹ + 2x². Observe que:
  • O caractere (:) é usado para separar o nome da função de objetivo e sua definição.
  • O caractere (*) representa a multiplicação
As linhas 15,16 e 17 são os limitadores e são seguidos de s.t. que não é obrigatoriamente necessário mas ajuda na capacidade de leitura.Os três limitadores do código foram representados por : Acabamento, Carpintaria e Demanda.
A imagem abaixo ilustra o código para solucionar o Giapetto com MathProg.



Saída do glpsol
O relatório de solução estará em giapetto.sol com informações sobre o tempo e a memória que o GLPK consumiu. O relatório mostra que glpsol lê o modelo e em seguida chama a função de API do GLPK para gerar a função de objetivo e, em seguida, chama outra função de API para gerar os limitadores. Após o modelo ter sido gerado, o glpsol explica brevemente como o problema foi tratado internamente pelo GLPK. No final, há informações sobre a solução e os recursos utilizados pelo GLPK para soluciona-lo.
A imagem abaixo ilustra o relatório do glpsol.

Solução para o problema do Giapetto.sol

A solução e dividida em quatro partes:
  • Informações sobre o problema e o valor ideal da função de objetivo.
  • Informações precisas sobre o status da função de objetivo e sobre os limitadores.
  • Informações precisas sobre os valores ideais para as variáveis de decisão.
Para esta solução podemos ver que ela é OPTIMAL e que o lucro semanal é de no máximo $ 180.
O status da restrição de acabamento é nu (coluna st). NU significa que existe uma variável não-básica no limite superior para essa restrição.
A demanda de carpintaria e de soldados são semelhantes. Para a restrição de carpintaria é um limite superior. Portanto um atenuação de uma unidade nessa restrição faz com que o valor marginal 1 e torna-se 181.
6. CONCLUSÃO
A programação Linear possui vários softwares para modelar, construir e resolver problemas de Programação Linear, fazendo uso de linguagem de modelagem que possui funções que auxiliam na resolução dos problemas, com objetivo de fazer modelagem para chegar na solução testando as variáveis e as restrições até chegar numa solução ótima.
Inscreva-se no Feed RSS Follow me on Twitter!