This is a short definition I sometimes use in my articles. More like a boilerplate, and you need to change some stuff if you happen to have more constraints. The \eqnlimit macro is a shorthand for index ranges.
\documentclass{article}
\usepackage[sumlimits]{amsmath}
\usepackage{xargs}
\newcommandx*\eqnlimit[3][1=1, 3=n]{\ensuremath{#1 \leq #2 \leq #3}}
\newcommand{\linprog}[6]{
\begin{alignat}{5}
\label{#6-1}
\min & \quad #1 & \\
\label{#6-2}
\text{s.t.} & \quad #2 &, & \quad #3\\
\label{#6-3}
& \quad #4 &, & \quad #5
\end{alignat}}
\begin{document}
\linprog{f(x)}{g_i(x) \leq 0}{\eqnlimit[1]{i}[n]}{h_j(x) = 0}{\eqnlimit[1]{j}[m]}{eq:linprog1}
\linprog{f(x)}{g_i(x) \leq 0}{\eqnlimit[1]{i}[n]}{h_j(x) = 0}{\eqnlimit[1]{j}[m]}{eq:linprog2}
\\
First linear program\\
This is the objective: (\ref{eq:linprog1-1}), the inequality constraint set: (\ref{eq:linprog1-2}), and the equality constraint set(\ref{eq:linprog1-3}).
\\ \\
Second linear program\\
This is the objective: (\ref{eq:linprog2-1}), the inequality constraint set: (\ref{eq:linprog2-2}), and the equality constraint set(\ref{eq:linprog2-3}).
\end{document}
Thanks to Caramdir for the help with the labelling.