Lizenzberechnung

Hallo,

es geht zwar um Computerlizenzen, aber ich denke, das ist eher ein Thema für’s Mathematikforum.
Nutzt ein User einen Computer, braucht man dafür eine Nutzungslizenz.

Es gibt 2 Arten von Lizenzen:

  • Userlizenzen
  • Computerlizenzen

Weist man einem User eine Userlizenz zu, kann er damit beliebig viele Computer nutzen.
Weist man einem Computer eine Computerlizenz zu, kann dieser von beliebig vielen Usern genutzt werden.

Müsste man sich festlegen auf User- oder Computerlizenzen, wäre es einfach.
Hat man mehr User als Computer, nimmt man Computerlizenzen. Hat man mehr Computer als User, nimmt man Userlizenzen.

Aber man kann auch mischen. Ein Beispiel:
Folgende User (U) haben sich an folgenden Computern (C ) angemeldet:
U1 an C1, C2, C3
U2 an C4
U3 an C2, C4
U4 an C4

Man könnte z.B. folgendermassen lizenzieren:

  • 4 Userlizenzen
    oder
  • 4 Computerlizenzen
    oder
  • 2 Userlizenzen (U1, U3)
  • 1 Computerlizenz (C4)
    oder
  • 1 Computerlizenz (C4)
  • 1 Userlizenz (U1)

Bei so wenigen Usern/Computern ist das überschaubar. Bei x Usern und y Computern ist das so nicht möglich. Ich suche eine Berechnungsmethode, wie man das ideale Mischverhältnis rausbekommt. Ideal heißt möglichst wenig Lizenzen.

Hat jemand eine Idee?
Danke und Gruß
Martin

Das ist einfach. Man setzt einen Server auf, der die Lizenzen dynamisch verwaltet. Und dann wird gezählt und bezahlt, wie viele (Netzwerk-) Lizenzen maximal gleichzeitig benutzt werden können. Unabhängig von der Anzahl der PCs. Matlab macht das zum Beispiel so.
Probleme gibt es, wenn ein PC unabhängig, also ohne Verbindung zum Server, benutzt werden soll. Dann braucht dieser PC eine andere, nämlich eine Einzelplatz-Lizenz.

Die Lösung steckt nicht in der Mathematik, sondern im möglichen Lizenzmodell und den Notwendigkeiten.

Sicher?

geht schon mal nicht, weil U3 dann nicht an C2 arbeiten kann :wink:

Ideal heißt möglichst wenig Lizenzkosten. Die unterschiedlichen Preise müsste man auch einbeziehen.

Du müsstest eine Aufstellung machen, wie viele Nutzer an wie vielen Computern arbeiten können/müssen.
u_1 User an max. c_1 Computern
u_2 User an max. c_2 Computern

u_n User an max. 1 Computer

Daraus könnte man dann was basteln.
Was natürlich auch berücksichtigt werden muss: Wie viele User benötigen gleichzeitig wie viele Lizenzen?

Gruß,

Kannitverstan

Spitzfindigkeit am Rande: Mathworks bietet auch die genannten Lizenzierungen (user- oder rechnergebunden). Eine Umstellung auf die eine oder andere Variante ist nur wenige Male möglich, bevor Mathworks nachhakt.
Man soll schon von Fällen gehört haben, wo sich mehrere Nutzer eine rechnergebundene Lizenz teilen :speak_no_evil:

Gruß,

Kannitverstan

Es geht mir eigentlich weniger um die Lizenzen an sich, sondern wie man dieses Problem mathematisch lösen kann. Deshalb auch im Mathematikforum.

Gruß
Martin

Hallo,
schreibe Deine User und Computer in einen bipartiten Graph, (U,C). Die Relation u~c (aus (U,C)) soll heißen, User u benutzt Computer c.

Dann ist die Lösung, den Rucksack xu + yc (als Summe über alle u und c) zu minimieren, bzw. wenn die eine Lizenz mehr kostet als die andere: \sum xuL + ycK (mit L und K Lizenzkosten)

Das ist jetzt allgemein weder möglich (mit vertretbaren Rechenaufwand) noch eindeutig. Also mach es greedy. Erst der Computer mit den meisten User-Eingängen bekommt eine Computerlizenz. Dann nimmst Du den Computer aus dem Graphen, es bleibt ein bipartiter Graph. Der Nutzer mit den meisten Ausgängen bekommt nun eine Nutzerlizenz, dann nimmst Du den Nutzer aus dem Graphen. Und so weiter.

Das Ergebnis ist nicht garantiert optimal, aber vielleicht reicht das schon?

1 Like

OK, danke. Ich versuch mein Glück.

Gruß
Martin