3.1. The Modeling Framework
The PaaS provider has a set of
types of devices:
. Each type of device
is characterized by a subset of the
functionalities from the set
(i.e.,
). In the algebraic representation, the functionalities of devices can be represented in the form of a matrix
. Each row of the
matrix (corresponding to the
type of device) corresponds to the sequence
, where
determines whether device type
has functionality
(
) or not (
):
The number of devices of a given type is determined by the sequence , where means the number of devices of type . The cost of renting each type of device is determined by the sequence , where is the cost of the device type .
There is a set of potential customers looking for offers (sets of devices) that meet their expected assumptions. Each customer expects access to a set of devices that fulfill the functionalities specified by the sequence , where specifies the number of functionalities of type expected by customer . Each customer has a budget , which cannot be exceeded (i.e., the sum of the costs of devices cannot exceed this value).
Each of the potential customers
is looking for an offer of PaaS provider devices denoted as the sequence
, where
means number of
type devices offered. The functionalities offered as part of the
offer, described with the sequence
, can be defined as follows:
where
is the number of functionalities
made available to customer
by the PaaS provider as part of the
offer.
—product of matrices A and B. For example, if the prepared offer
is set according to the sequence:
, then customer
is offered 1 device of type
, 2 devices
and 1 device
. Assuming that the matrix
is:
, then
(i.e., device type
has functionality
and
),
(i.e., device type
has functionality
and
)) and
(i.e., device type
has functionality
and
). The functionalities offered as part of the offer
are therefore described by the sequence
(obtained as the product of the matrix
—see (2)) of the form:
. This means that as part of the presented offer, the customer will have 3 functionalities
, 3 functionalities
, and 2 functionalities
.
The cost
of the offer
can, in turn, be described by the equation:
In addition to knowing the leasing costs, the customer wants to be sure that in the event of a failure of one or more of the ordered devices, the functionalities of these devices can be met (replaced) by the remaining functional ones. Equipment failure is further understood as a situation in which one of the devices (of type
) fails and its functionalities are no longer available to the customer. As a consequence of this assumption, it becomes possible to introduce the robustness
of the
offer, understood as the ratio of failure scenarios in which the customer still has the full set of required functionalities (
) to all considered failure scenarios (
):
where
means lack of robustness, i.e., for each failure scenario of a single device its functionality cannot be replaced by other functional devices;
it means full robustness, i.e., for each failure scenario of a single device, other rented devices offer the functionalities of the malfunction. PaaS provider knows about the
robustness level
of each customer, therefore his offer must meet the customer’s requirements
.
The proposed approach to planning PaaS offerings addresses the main question: Given a set of customers , can a corresponding set of offers be formulated to satisfy their requirements (detailed below)?
To fulfill the specified constraints, each offer must ensure the following:
- (I)
Functionality: .
- (II)
Budget: .
- (III)
Device Availability: .
- (IV)
Robustness: .
The methodology for identifying offers that satisfy these constraints (I–IV) is outlined in
Section 4. This approach is grounded in the “space of stepping crawl thread” concept introduced in
Section 3.2An illustration of an example problem in which a PaaS provider assesses the possibility of preparing robust (
) offers for two customers (
and
) is shown in
Figure 1. The provider has three types of devices
respectively in number: fifteen, five, ten. Customers expect offers that include devices that guarantee two functionalities:
in numbers eight and five (for customer
) and eleven and three (for customer
), respectively.
The formulated problem is an extension of the classic problem of resource allocation [
63] with the possibility of searching for so-called disruption-robust offers (i.e., guaranteeing the maintenance of expected functionalities in the event of a failure of one of the devices). Taking into account this type of robustness allows you to reduce costs determined by the risk of failure [
7].
The problem of searching for disruption-robust offers was first formulated in [
6], where constraint programming techniques were used to solve it. Despite many advantages, these techniques are characterized by low computational efficiency. The current scale of problems solvable online is limited to thirteen customers and no more than eight types of devices. The principle of planning offers for a given customer group
, which is the basis for the proposed approach, is illustrated in
Figure 1.
It assumes that each of the feasible offers is verified in terms of whether it guarantees the expected degree of robustness. It is worth noting that the computational complexity of the problems of determining feasible solutions (constraints No. I–III) and assessing their robustness (constraint No. IV) approximate functions with an exponential course.
3.2. The Solution Space
An algebraic representation of the considered problem (concerning Formulas (1)–(4)) allows the formulation of properties allowing its simplification. Let (—is the number of functionalities of the set ) denote the solution space whose elements are points with coordinates , i.e., . The coordinate of the point determines the number of functionalities made available to the customer as part of the presented offer.
Given is a non-empty set of vectors
where
and
. For example, the set of vectors from the space in
Figure 2a) takes the form
, where
,
and
The translation of the point by the vector is an operation resulting in the point with coordinates . This type of action is denoted hereafter: . For example, the result of translating the point by the vector is the point i.e., .
The defined space
and the operations of translating (
) the points of this space by the vectors of the set
constitute the algebraic structure:
, the graphical representation of which (for two dimensions) is shown in
Figure 2a). The
structure enables to define the concept of a vector path, hereinafter named as stepping crawl thread (SCT). Let the sequence
define an SCTs built from the vectors of the set
(where
,
). The translation of the point
by the SCT
is the result of successive translations of the point
by the vectors making up this path, i.e.,
. The points
and
(distinguished by the symbols “_”, “
”) denote the starting and ending points of the stepping crawl thread
, respectively. This translation is further abbreviated as:
. An example of 3 vector paths with the origin at point
is illustrated in
Figure 2b).
In the adopted representation, the elements (edges) of the SCT
(with the beginning at the point
) represent the devices constituting the offer
made available by the PaaS provider to the customer
. However, the coordinates of the endpoint
of such a thread determine the functionalities
made available under a given offer
. The coordinates of the end point
of the thread
can be determined from the following relationship:
For example, SCT
from
Figure 2b takes the form:
where
,
. According to (5), the end point is the point
representing the functionalities made available to the customer as part of the offer
presented by
—to the customer who will have 6 functionalities
and 2 functionalities
.
3.2.1. Subspace of Feasible Solutions
Let us distinguish the
subspace containing those solutions that meet the customer’s expectations (i.e., those for which constraint No. I is met—see
Section 2.1):
Therefore, each customer
corresponds to a set of
points that meet his expectations, i.e., points with the coordinates defined by the expression (6).
Figure 3 shows examples of spaces
(green field) and
(blue field) that correspond to the needs of customers from the example shown in
Figure 1. Customer
expects an offer that guarantees two functionalities (
in the number of eight and five (
), respectively, while the customer
—in the number eleven and three (
). Each point in these spaces defines the conditions that an offer acceptable to customers should meet.
In the presented approach, the problem of offer planning comes down to determining a set of the SCTs:
, ending at points in the
space, i.e.,
,
, …,
. Example threads:
,
, corresponding to the following offers, are shown in
Figure 3:
which consists of: five devices of type
, three devices , and three devices ,
, which consists of: nine devices of type , one device , and two devices .
Of course, not every point of the
space can be reached. The number of vectors of the set
from which threads
are generated is finite (determined by
). The subspace of achievable solutions
therefore contains those points
that are reachable by the thread
generated from the vectors of the set (i.e., points for which constraint No. III is met—see
Section 2.1):
where
—a function that returns the number of occurrences of the vector
in the sequence
.
Figure 4 shows the
space for the example from
Figure 1. Each point of this space
represents an offer whose number of shared devices does not exceed the number of devices at the provider’s disposal:
,
,
.
It is easy to notice that this space is bounded by two threads: , generated from all devices available from the provider:
,
.
We can then define the
space of feasible solutions, being the intersection of the
space of achievable solutions and the
space containing points meeting the customer’s expectations:
A corresponding example of space
(green field) and
(violet field) that correspond to the feasible solutions for customers from the example shown in
Figure 1 is presented in
Figure 5.
3.2.2. Subspace of Robust Solutions
Of course, searching for threads requires continuous verification of other constraints concerning the offer costs (constraint No. II) and assessment of the offer’s robustness (constraint No. IV). Of the above, the stage of assessing the offer’s robustness is the most computationally expensive. According to (4), this assessment requires an overview of all possible failure scenarios (), the number of which, in general, increases exponentially.
The step of verifying the offer’s robustness assessment (carried out during the construction of the
thread) can be removed by introducing a concept of the robust solution space
. The
robust solution space contains those points of the
space which, in the event of a failure (malfunction of any device from the offer), still meet the expectations of the customer
. In general, failure of multiple
devices can be considered. The failure of
devices of type
for the offer represented by the thread
ending at point
can be interpreted as translations of this point by the vector
i.e.,
. If after such a translation the point
is located in the area of feasible solutions (i.e.,
), then the offer is robust to a given failure scenario. Formally, the
space can be defined as follows:
Considered robust solution space
contains those points
, reaching which (by thread
representing the offer
) guarantees full robustness
) of offer
. Examples of the robust solution space
(the solution space robust to the failure of one device
) and
(the space of solutions robust to the failure of two devices
) are illustrated in
Figure 6.
Each point belonging to these spaces corresponds to offers that meet the expectations of customers
and
even in the event of failure of a given number of devices (i.e., one device in the case of customer
’s offers, two devices in the case of customer
’s offer). In other words, the spaces
,
contain points reaching which guarantee full robustness of offers:
. An example of threads leading to such points is shown in
Figure 6:
, and
.
These threads correspond to offers and which guarantee the fulfillment of the functionalities expected by customers: , even in the event of a failure of one (customer ) or two (customer ) of the offered devices.
To sum up, in the space
we can distinguish the following subspaces (see
Figure 7):
subspace of expected solutions (6),
subspace of achievable solutions (7),
subspace of feasible solutions which is the intersection of and (8),
subspace of robust solutions which is included in the subspace (9),
The introduced concepts allow us to develop a method for determining SCTs representing robust offers
guaranteeing the fulfillment of constraints No. I–IV (see
Section 2). An example of such a method is presented in
Section 4.
3.2.3. Problem Statement
Consequently, the thread
obtained in the presented way guarantees robustness
. It is worth noting that the introduced representation allows replacing the process of searching for threads that require additional verification of the robustness of the presented offers by the process of searching in
for threads that guarantee specific reliability (in the case under consideration,
). Referring to the approach presented in
Figure 1, this means that the robust verification stage (verification of constraint No. IV) has been removed from the process of searching for offers. In that context in proposed approach, the considered problem comes down to the following question: Is it possible in the
space to determine the
SCTs leading to points guaranteeing a given level of robustness (
, …,
)?
It is worth adding that the points corresponding to solutions with robustness
are contained in the space
(see an example in
Figure 2b). Determining offers that guarantee this type of robustness also comes down to determining the SCTs
leading to the points of the
space (see the next Section).