Para um problema de viabilidade de LP, eu não usaria simplex padrão. Os algoritmos simplais primários (ou duplos) padrão apenas visitarão os vértices do conjunto viável dos problemas primários (ou duplos).
Deixe o conjunto viável do problema que você realmente deseja resolver seja e suponha que você deveria resolver o problema ( F ε ):F={x:Ax≤b,x>0}Fε
stminx0 0A x ≤ bx ≥ ε ⋅ 1 .
O aproximar mais próximo do problema que você deseja resolver é , que admite pontos um pouco demais. O problema é que o limite da orthant positiva (isto é, o conjunto B = { x : x ≥ 0 , ∃ i : x i = 0 } poderia tornar-se parte da fronteira do conjunto viável de F 0 . Tínhamos gostaria de excluir esses pontos.Uma maneira de fazer isso é fazer o que Aron sugeriu, que é definir εF0 0B={x:x≥0,∃i:xi=0}F0εpara algum pequeno valor positivo e, em seguida, use qualquer algoritmo LP padrão. Essa estratégia é boa e provavelmente funcionará em uma ampla variedade de situações. No entanto, falhará se for inviável. Sabemos que F 0 ⊂ F ⊂ F ε para todos ε > 0 (para abusar da notação e se referir a um conjunto viável pelo seu problema correspondente), e é possível que, mesmo se você escolher pequenos valores positivos de ε , o solucionador de LP indicará que seu LP é inviável.FεF0⊂F⊂Fεε>0ε
Para um solucionador LP, eu usaria qualquer algoritmo de ponto interior de LPs que começa com um ponto e estadias possíveis viável, que é outra maneira de excluir pontos em . Você não precisa fornecer um ponto viável para esses algoritmos; os solucionadores padrão farão isso por você. Métodos como escala afim, redução de potencial e métodos de barreira configuram LPs auxiliares que encontrarão soluções viáveis, e as iterações para esses algoritmos atravessam o interior da região viável. Você só precisa localizar um ponto em sua região viável, desde que os problemas auxiliares usados pelos solucionadores de LP localizem um ponto viável para o seu problema e esse ponto viável seja estritamente positivo, você deve estar bem. Se a resolução de F ε falhar para pequenos valores positivos de εBFεε, você ainda poderá usar esses métodos para localizar um ponto viável estritamente positivo em .F0
Não use simplex, porém, porque ele explorará apenas os vértices de , que é exatamente o que você deseja evitar.Fε