• Nenhum resultado encontrado

3.5 Programação Linear com Preservação da Privacidade

3.6.1 BSP-based Parallel Simplex

O método simplex em paralelo baseado no model BSP foi introduzido por Dong et al. in [41] como uma alternativa para melhorar o tempo computacional em problemas de larga escala. O algoritmo paralelo é baseado no modelo Bulk-Synchronous Parallel (BSP) proposto por Valiant em [94].

Existem diversas razões para a escolha do método BSP simplex em paralelo dentre as outras possibilidades. O modelo BSP é adequado para CSM genérica (detalhes em como aplicar tal modelo a CSM serão descritos na Seção 6.2.2). A paralelização é independente da estrutura do problema ou tipo de restrições. O único requisito é de que o problema esteja em uma forma canônica (mesmo requisito de Toft e Li e Atallah), o que é aplicável aos problemas de PDCL. Em respeito ao desempenho, este modelo oferece um speed-up considerável. Considerável porque outras opções de paralelização como o Método Simplex Revisado em Paralelo de [90], ou o Método de Ponto-Interior em Paralelo de [53], oferecem speed-ups maiores, mas tal melhoria depende da estrutura do problema, densidade da matriz, identificação de estruturas-bloco, tipo de restrições e, tais propriedades não podem ser garantidas para qualquer problema de PDCL. A complexidade da solução é aproximadamente a mesma do método tradicional dividida pelo número de processadores, mais um custo de comunicação (que pode ser teoricamente estimado). Por fim, consideram-se os custos para uma implementação segura. O método BSP simplex em paralelo não depende da estrutura da matriz, e.g., o fato de que todos os elementos da matriz são variáveis secretas não invalida a solução como no caso de [90] e [53], por exemplo. Ele não incluí nenhum tipo de operações complexas com matrizes como inversão (e possivelmente decomposição LU). De maneira geral, este método apresenta aproximadamente o mesmo overhead que o protocolo de Toft para computação com variáveis secretas.

O modelo BSP argumenta por escalabilidade, portabilidade e previsibilidade, fornecendo novas fundações para o desenvolvimento de sistemas escaláveis de computação paralela [41]. Tal modelo encara uma máquina paralela como um conjunto de três elementos básicos:

1. conjunto de pares processador-memória;

2. rede de comunicação global que entrega mensagens de maneira ponto-a-ponto entre os processa- dores;

3. um mecanismo para a sincronização global de todos os processadores por meio de uma barreira; Um programa BSP consiste em uma sequência de super passos que inclui computação simultânea local em cada processador, seguida de comunicação entre eles para a troca de informações e finalmente, uma barreira de sincronização que assegura que as ações de comunicação foram completadas com

sucesso. A Figura 3.1 mostra a estrutura de um super passo em algoritmos paralelos baseados no modelo BSP. Computação Local Comunicação Global Barreira de Sincronização Processadores Virtuais

Figura 3.1: Estrutura de um super passo no modelo BSP

Problemas de PDCL (modelados como PL) e o algoritmo simplex tradicional exibem diversas operações que podem ser paralelizadas. O método BSP simplex em paralelo aplica uma técnica de paralelização em nível de tarefas, também chamada de paralelização horizontal ou de linhas, o que significa que cada processador possui um conjunto de linhas do tableau inicial. Os processadores são identificados por um identificador único, i.e., no intervalo [0, (p−1)], onde p é o número de processadores disponíveis. Existe ainda uma distinção entre três classes de processadores:

processador 0 : responsável pela seleção da coluna e linha do elemento pivô; processador minL : possui a linha que contém o elemento pivô;

processador L : todos os outros processadores;

Dois dos passos do método simplex tradicional são paralelizados entre os processadores: deter- minar a variável que sai da base e a operação de pivoteamento.

Assume-se que o problema encontra-se em uma forma canônica e que está representado na forma de um tableau [36, 76, 95]. minimize c · x sujeito a A · x ≤ b, x ≥ 0 ⇒ B =  A I b c 0 0 

A partir da forma padrão da matriz (tableau), o algoritmo calcula a matriz final contendo os valores ótimo para a função objetivo mediante a execução de basicamente os mesmos passos definidos pelo método simplex tradicional (referir-se a [41] para a descrição completa do algoritmo).

O custo de computação deste método é limitado por O(km(m+n)p + k + kδ) contra O(km(m + n)) do método simplex tradicional, onde m é o número de restrições, n é o número de variáveis, p é o número de processadores, k representa os saltos dos vértices,  é o custo de comunicação de um salto entre vértices adjacentes e δ é o custo de sincronização. Na prática, de acordo com os experimentos de [41], o speed-up resultante para o caso de dois processadores é 1.65 e, para o caso de quatro processadores é 2.71.

3.7

Conclusão

Transações de negócios em rede tem se tornado mais e mais comuns devido à larga utilização da Internet e arquiteturas orientadas a serviço. Aplicações B2B requerem que empresas se envolvam em

3.7. Conclusão 29

transações eletrônicas que, por sua vez, são vitais para o sucesso dos negócios. A indústria como um todo está apostando seu futuro nesta tendência e o gerenciamento de cadeias logísticas é um exemplo disto.

Os parceiros de negócio enquanto tendo acesso a sistemas internos se tornam uma ameaça de segurança. Mesmo sabendo que o compartilhamento de informação durante o gerenciamento de cadeias logísticas reduz custos, tais parceiros se mostram relutantes em compartilhar, principalmente devido ao medo do vazamento de dados. Neste capítulo foram discutidos o valor da informação no gerenciamento de CL assim como a necessidade de privacidade por parte dos parceiros. Entre as medidas de segurança mais comuns, CSM é a única a oferecer garantias prováveis de segurança, as quais podem convencer os parceiros a compartilhar.

Eficiência é a maior preocupação no que diz respeito à protocolos CSM e computação paralela pode ser uma alternativa para a redução de custos. Foram encontradas várias tentativas de paraleliza- ção de métodos de programação linear. A abordagem de Dong et al. (baseada em BSP) é a que mais se adequa às necessidades impostas por problemas de gerenciamento de CL e, portanto, foi descrita em detalhes.

Capítulo 4

Otimizando o Número de Permutações

Este Capítulo trata da necessidade de permutações seguras durante o protocolo Secure and Private Collaborative Linear Programming de [68]. A ocorrência de permutações em cada iteração torna este protocolo bastante caro. Sendo assim, é de extremo interesse a redução do número de permutações requeridas pelo protocolo proposto por Li e Atallah.

4.1

Introdução

A solução de Li e Atallah [68] não requer variáveis secretas (criptografadas) para a representação do problema. A utilização da técnica de compartilhamento aditivo dos dados entre os participantes, i.e., a matriz D, permite que a seleção do índice do elemento pivô seja feita em claro.

Entretanto, o fato de os participantes conhecerem tal índice eventualmente revela informações a respeito do problema original de modo desnecessário. Além disso, cada linha da matriz corresponde a uma restrição e cada uma das colunas corresponde a um certo coeficiente. Assim, se um índice de uma linha ou coluna for selecionado mais de uma vez, informação extra pode ser obtida, o que caracteriza o seu vazamento.

A fim de evitar vazamento de informação, um protocolo de embaralhamento e permutação é exe- cutado em todas as iterações do método simplex seguro. Isto garante a randomização dos índices antes da escolha do pivô de modo que nenhuma informação pode ser obtida, o que implica na preservação da privacidade dos dados dos participantes. Corretude é assegurada pela execução do protocolo de recu- peração dos índices. Tal protocolo é invocado apenas uma vez, ao fim da execução do protocolo, com o intuito de restaurar as posições originais dos índices da matriz, ao custo de re-executar o protocolo de embaralhamento e permutação k vezes, no qual k é o número total de iterações.

Os custos computacionais de protocolos seguros de permutação para o caso de dois participantes já foram discutidos na literatura, em [68], por exemplo. Eles representam uma parcela importante dos custos totais do protocolo seguro de PL. Como exemplo, para o caso do protocolo de Li e Atallah, os custos da permutação segura são iguais aos custos da operação de pivoteamento, que é a operação mais cara de todo o protocolo. Problemas de gerenciamento de cadeias logísticas, e.g., plano diretor da cadeia logística, incluem diversos parceiros, o que requer soluções multi-parte. Permutações seguras para cenários multi-parte foram, pela primeira vez, formalmente consideradas em [61]. Os custos computacionais e de comunicação associados a tal operação dependem do número de participantes e, de maneira geral, são bastante elevados.

Em suma, a solução de Li e Atallah requer que o protocolo de embaralhamento e permutação seja invocado 2k vezes. O número de iterações k necessárias para a resolução de problemas de PL não pode ser modificado, i.e., ele depende do problema e varia de acordo com ele. A otimização de cadeias logísticas frequentemente envolve cenários multi-parte nos quais as cadeias possuem diversos nós, o que resulta em problemas de PL de tamanho considerável. Um problema de tamanho médio possui um número de restrições m aproximadamente igual a 2000 [36], por exemplo. A relação entre o número de iterações e o número de permutações, i.e., permutação em cada iteração, constitui um grande problema de desempenho. A redução do número de permutação é, portanto, de grande interesse.

Este Capítulo é divido como segue. Uma análise probabilística das razões pelas quais a permuta- ção é necessária é feita na Seção 4.2. A Seção 4.3 introduz uma idéia baseada em probabilidade para a

redução do número de permutações e discute aspectos conceituais. Uma descrição matemática formal é realizada na Seção 4.4. A Seção 4.5 fornece uma avaliação da proposta baseada em experimentos. Os resultados e trabalhos relacionados são discutidos na Seção 4.6 e, por fim, a Seção 4.7 resume as conclusões do Capítulo.

4.2

Distribuição Probabilística da Repetição de Índices de Linhas ou