Posted on Categories:CS代写, 算法, 计算机代写

# 计算机代写|算法代写Algorithm代考|CS473 Greedy Algorithm Principles

avatest™

## avatest™帮您通过考试

avatest™的各个学科专家已帮了学生顺利通过达上千场考试。我们保证您快速准时完成各时长和类型的考试，包括in class、take home、online、proctor。写手整理各样的资源来或按照您学校的资料教您，创造模拟试题，提供所有的问题例子，以保证您在真实考试中取得的通过率是85%以上。如果您有即将到来的每周、季考、期中或期末考试，我们都能帮助您！

•最快12小时交付

•200+ 英语母语导师

•70分以下全额退款

## 计算机代写|算法代写Algorithm代考|Exchange Arguments

In this section, we explore a key proof technique used in establishing the correctness of greedy algorithms; namely, the notion of an exchange argument. The key idea is to start with a solution (multi)set $S$ and show that we may swap out or exchange elements of $S$ in such a way that improves the solution. Understanding which elements to exchange often provides key insights into designing effective greedy algorithms. Such provable observations imply the correctness of our greedy algorithms.

Example 32. Recall the Making Change problem, where we have an infinite supply of pennies (worth 1 cent), nickels (worth 5 cents), dimes (worth 10 cents), and quarters (worth 25 cents). We take as input an integer $n \geq 0$. The goal is to make change for $n$ using the fewest number of coins possible. The greedy algorithm chooses as many quarters as possible, followed by as many dimes as possible, then as many nickels as possible. Finally, the greedy algorithm uses pennies to finish making change.

Why is the greedy algorithm correct? Why does it select dimes before nickels? Exchange arguments allow us to answer this question. Consider the following lemma.

Lemma 33. Let $n \in \mathbb{N}$ be the amount for which we wish to make change. In an optimal solution, we have at most one nickel.

Proof. Let $S$ be the multiset of coins used to make change for $n$. Suppose that $S$ contains $k>1$ nickels. The key idea is that we may exchange each pair of nickels for a single dime. We formalize this as follows.

By the Division Algorithm, we may write $k=2 j+r$, where $j \in \mathbb{N}$ and $r \in{0,1}$. As $k>1$, we have that $j \geq 1$. So we exchange $2 j$ nickels for $j$ dimes to obtain a new solution set $S^{\prime}$. Observe that: $\left|S^{\prime}\right|=|S|-j<|S|$. As we may construct a solution using fewer coins, it follows that any optimal solution uses at most one nickel.
While we will not go through a full proof of correctness for the greedy algorithm to make change, similar lemmas regarding dimes and pennies serve as key steps in establishing the correctness of this algorithm. In fact, Lemma 33 provides the key insight that we should select dimes before nickels; as otherwise, we may need to swap out the nickels for fewer dimes.

## 计算机代写|算法代写Algorithm代考|Interval Scheduling

In this section, we consider the Interval Scheduling problem. Intuitively, we have a single classroom. The goal is to assign the maximum number of courses to the classroom, such that no two classes are scheduled for our room at the same time. We now turn to formalizing the Interval Scheduling problme. Here, we think of intervals as line segments on the real line. We specify each interval by a pair $s_i$ and $f_i$, where $s_i<f_i$. An interval with starting point $s_i$ and ending point $s_i$ is the set:
$$\left[s_i, f_i\right]=\left{x \in \mathbb{R}: s_i \leq x \leq f_i\right} .$$
As an example, $[0,1]$ is the set of real numbers between 0 and 1, including the endpoints 0 and 1 . Intuitively, the Interval Scheduling problem takes as input $\mathcal{I}$, a set of intervals. The goal is to find the maximum number of intervals we can select, such that no two intervals overlap.
Definition 34. The Interval Scheduling problem is defined as follows.

• Instance: Let $\mathcal{I}=\left{\left[s_1, f_1\right], \ldots,\left[s_k, f_k\right]\right}$ be our set of intervals.
• Solution: A set $S \subseteq \mathcal{I}$ such that no two intervals in $S$ overlap, where $|S|$ is as large as possible.

## 计算机代写|算法代写Algorithm代考|Interval Scheduling

〈left 缺少或无法识别的分隔符

• 实例: 让left 缺少或无法识别的分隔符
是我们的间隔集。
• 解决方案: 一套 $S \subseteq \mathcal{I}$ 这样没有两个间隔 $S$ 重珢，其中 $|S|$ 尽可能大。

## MATLAB代写

MATLAB 是一种用于技术计算的高性能语言。它将计算、可视化和编程集成在一个易于使用的环境中，其中问题和解决方案以熟悉的数学符号表示。典型用途包括：数学和计算算法开发建模、仿真和原型制作数据分析、探索和可视化科学和工程图形应用程序开发，包括图形用户界面构建MATLAB 是一个交互式系统，其基本数据元素是一个不需要维度的数组。这使您可以解决许多技术计算问题，尤其是那些具有矩阵和向量公式的问题，而只需用 C 或 Fortran 等标量非交互式语言编写程序所需的时间的一小部分。MATLAB 名称代表矩阵实验室。MATLAB 最初的编写目的是提供对由 LINPACK 和 EISPACK 项目开发的矩阵软件的轻松访问，这两个项目共同代表了矩阵计算软件的最新技术。MATLAB 经过多年的发展，得到了许多用户的投入。在大学环境中，它是数学、工程和科学入门和高级课程的标准教学工具。在工业领域，MATLAB 是高效研究、开发和分析的首选工具。MATLAB 具有一系列称为工具箱的特定于应用程序的解决方案。对于大多数 MATLAB 用户来说非常重要，工具箱允许您学习应用专业技术。工具箱是 MATLAB 函数（M 文件）的综合集合，可扩展 MATLAB 环境以解决特定类别的问题。可用工具箱的领域包括信号处理、控制系统、神经网络、模糊逻辑、小波、仿真等。