# Automatic Initialization Methods for Photonic Components on a Silicon-Based Optical Switch
## 3 Optimization Method  
This section describes the optimization engine we had setup to enable the automatic initialization/reconfiguration of the active elements on the IRIS chip, i.e., switching nodes and interleavers. The core of the engine was a heuristic/stochastic algorithm, which saved us from a brute force search for the best bias configuration, to apply to the heaters of each photonic element to retrieve the wanted output transfer function. For design reasons (due to the positioning of the integrated photo-diodes), we needed to align the resonance of each single switching node and trim each interleaver, separately. At the first alignment of the IRIS chip, namely initialization, the optimal bias configurations found were stored into a look-up-table (LUT). During operation, the LUT could be accessed to set the switching matrix into a particular routing configuration. For aligning the switching nodes, the single wavelengths (from a tunable laser) were injected into the straight waveguides of the switching matrix. If no bias was applied to the MRR's heaters, the wavelengths pass through the crossings without being dropped (with no bias, the switching nodes are in an off-state). When we launched the initialization routine, the optimization engine (one switching node at a time) searched for the heating configuration which maximized the optical signal dropped toward the local port (top panels of Figure 2). The optimization relied on the feedback from the photo-diodes placed at the columns switching matrix, right above the interleaves. The double-ring-based node shared the same transfer function of a second-order filter. Still, it kept a single local maximum within the phase space of all possible heating configurations of the switching node. This design has been chosen to allow a 35 dB channel isolation, while keeping a channel 3 dB-bandwidth of 50 GHz [13]. The interleavers have to be initialized as well. A schematic of the interleaving stage, before and after the optimization, is shown in the bottom panels of Figure 2. The MZI interleavers are very sensitive to the fabrication errors and need a dedicated trimming to allow the optical signal properly entering the cross-bar matrix [24]. In this case, the optical source (tunable laser) was injected at the interleaver input and was swept over the wavelength, within an interval of 200 GHz, i.e., one channel width. The optimization engine was fed back by the optical signal from one of the photo-diodes at the MZI output, integrated over a wavelength sweep. By doing so, we assured that the transfer function to optimize coincides with the channel shape of the interleaver, and thus, we could get to a local maximum (best channel shape, i.e., flat top response) by tuning the heaters on the MZI branches. Once we optimized the interleaver response for one output, as the two interleaver outputs were complementary, we had also optimized the response for the other output. In fact, Figure 6 demonstrates that this approach allowed to properly retrieve the wanted interleaver behavior, i.e., splitting the input optical signal into even and odd channels. Even if our optimization routine focused on a limited range of 200 GHz width, this was sufficient to optimize the routing of all the other channels, alternatively toward one or the other interleaver output (as shown in Figure 1 for the interleaver after the input line port). Therefore, we can exploit the same core algorithm to initialize both the switching nodes and the interleavers. Since the dependence of the optical response of both the MRRs and the interleavers on the bias applied to the thermal heaters is not a linear, our case needed a non-linear optimization methods [25]. The algorithms for non-linear numerical optimization could be divided in two main classes--the gradient-based methods and the direct search methods [26]. Gradient-based algorithms use information coming from the first derivative (gradient) and the second derivative (Hessian) to find a local maximum of the target function.