Zum Inhalt springen

Solver

aus Wikipedia, der freien Enzyklopädie

Vorlage:Hinweisbaustein {{#invoke:Vorlage:lang|flat}} (engl., dt. Löser) ist eine Sammelbezeichnung für spezielle mathematische Computerprogramme, die mathematische Probleme numerisch lösen können.

Beschreibung

Solver können als eigenständiges Softwarepaket existieren oder als Programmbibliothek in andere Softwaresysteme integriert sein.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:

      | {{#ifeq: {{{wayback}}} | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: GAMS-Solvers. | {{#invoke:WLink|getEscapedTitle|GAMS-Solvers.}} | {{#invoke:Webarchiv|getdomain|http://www.gams.com/solvers/index.htm}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|{{{wayback}}}}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: GAMS-Solvers. | {{#invoke:WLink|getEscapedTitle|GAMS-Solvers.}} | {{#invoke:Webarchiv|getdomain|http://www.gams.com/solvers/index.htm}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|{{{wayback}}}}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: GAMS-Solvers. | {{#invoke:WLink|getEscapedTitle|GAMS-Solvers.}} | {{#invoke:Webarchiv|getdomain|http://www.gams.com/solvers/index.htm}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: GAMS-Solvers. | {{#invoke:WLink|getEscapedTitle|GAMS-Solvers.}} | {{#invoke:Webarchiv|getdomain|http://www.gams.com/solvers/index.htm}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: GAMS-Solvers. | {{#invoke:WLink|getEscapedTitle|GAMS-Solvers.}} | {{#invoke:Webarchiv|getdomain|http://www.gams.com/solvers/index.htm}} }} (Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 20141126
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: GAMS-Solvers. | {{#invoke:WLink|getEscapedTitle|GAMS-Solvers.}} | {{#invoke:Webarchiv|getdomain|http://www.gams.com/solvers/index.htm}} }}  
                 }}}}}}}}{{#if:
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:20141126|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.gams.com/solvers/index.htm}}
    || {{#if:  || }}
  }}{{#if: GAMS-Solvers.
    | {{#if: {{#invoke:WLink|isBracketedLink|GAMS-Solvers.}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://www.gams.com/solvers/index.htm%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.gams.com/solvers/index.htm%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://www.gams.com/solvers/index.htm }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }}</ref>

Solver sind zumeist auf die Lösung spezieller Probleme programmiert, wie z. B.

Mit dem {{#invoke:Vorlage:lang|flat}} (GPS) versuchten Herbert Simon, J. C. Shaw und Allen Newell 1957 eine Software zu schreiben, die jedes formalisierbare Problem lösen kann. Dies war das erste Computerprogramm, das Wissen über das Problem (also sogenannte Anwendungsdomäne) und die Problemlösestrategie trennte (die sogenannte {{#invoke:Vorlage:lang|flat}}).

Allgemeine Solver nutzen bis heute diese Architektur, bei der sie die Problemdefinition und die Lösungsstrategie trennen. Während bei GPS noch einzig das Ziel der Lösung die Vollständigkeit war, nutzen heutige Solver spezielle Strategien, die auf bestimmte Problemklassen zugeschnitten sind. Vorteil dieser Trennung ist, dass diese Solver universeller einsetzbar und nicht auf bestimmte Probleminstanzen abgestimmt werden müssen.

Da in bestimmten Problemklassen teilweise eine sehr große Anzahl an Lösungsalgorithmen existieren, nutzen Solver oft mehrere Lösungsstrategien gleichzeitig, um ein Problem zu lösen.

Beispiele

  • General Problem Solver – Software mit einer allgemeinen Problemlösemethode
  • SAT-Solver – Software für das Erfüllbarkeitsproblem der Aussagenlogik<ref name="Lange" />
  • FE-Solver – Software zur Lösung von Finite-Elemente-Aufgaben (z. B. Nastran)
  • STRIPS – Automatische Planungssoftware

Siehe auch

Einzelnachweise

<references />